最新文章列表

程序员必须知道的数据结构:队列与栈

在数据结构中,队列与栈的产生主要是为了满足某些特殊的编程运算,数据结构最大的一个特点就是为算法提供基础,使用不用的数据结构甚至能直接 ...
wwt_cxy001 评论(0) 有330人浏览 2021-03-08 19:51

使用栈实现队列

  思路: 思路比较简单,使用两个栈,一个栈A负责入队,一个栈B负责出队,出队的时候,先判断栈B的元素是否为空,如果为空则将栈A的元素全部出栈放入栈B中,然后栈B元素出栈     代码: package com.buka.designer.statkqueue; import java.util.Stack; /** * 用栈实现队列 */ public clas ...
雨落千木 评论(0) 有537人浏览 2018-10-23 11:04

读书笔记:《算法图解》第三章 递归

定义: 在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。 例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?‘从 ...
tedeum 评论(2) 有1855人浏览 2018-01-15 14:21

栈空间分配

内存分堆和栈,堆是动态分配的,new,malloc等都是在堆上分配内存,需要手工回收或平台回收。栈用于分配局部变量、方法参数、返回地址,方法运行结束后自动回收。 对于静态类型语言,在编译期就能知道这个方法有哪些局部变量、参数,占用的内存大小也是确定的,因此可以直接在栈上分配,这种叫做栈的静态分配。对于python,javascript这种动态数据类型(python和javascript是一切皆对象语 ...
 
lg_asus 评论(0) 有864人浏览 2017-09-15 16:24

python数据结构之栈

一 介绍 列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。   二 封装一个堆栈类 # 简单的堆栈模块
cakin24 评论(0) 有479人浏览 2017-06-30 18:46

java数据结构总结(包含数组,链表,堆,栈)

      眨眼间,我们就上到了数据结构,从数组到队列,数据结构中的基本内容也快讲完,在数组的学习中,我们首先是学习ArrayList做了一个简单的长度可变的数组,利用两个数组中的交换数据做到了每次增量为1的可变数组,然而和ArrayList相比较,我们的可变数组的计算速度耗时过长,为了将数组的时间缩短,提高数组的效率,我们设置了增量,初始容量和数量,每次数组中放入数据超过数组本身的容量是就自动 ...
真眼2017 评论(0) 有366人浏览 2017-03-22 19:39

Java用链表实现栈和队列

    用链表实现了栈的基本操作:入栈、出栈、查看栈顶数据以及判断栈是否有数据 /** * 用链表实现栈 * @author Administrator * * @param <E> */ ...
程序新猿 评论(0) 有1626人浏览 2017-03-09 22:19

栈和局部变量

Java栈概述          记得当初我学习java时,常常听见身边的朋友说:“你要记住,当new一个对象时,对象的引用存放在栈里,而对象是存放在堆里 ...
IXHONG 评论(0) 有732人浏览 2017-02-28 23:44

jvm内存区域

概述 jvm内存分为几个区域: - 程序计数器 - 虚拟机栈 - 本地方法栈 - 堆 - 方法区 - 运行时常量池 - 直接内存 这些内存区域是在Java进程中细分的,为java程序提供服务 不同的区域存储的内容不一样,生命周期的也不一样 内存区域 程序计数器 这个就跟处理器中的程序计数器的功能差不多,是记录下一条字节码的地址 不过处理器的程序计数器是为进程服务的,jvm中的程序计数 ...
noble510520 评论(0) 有626人浏览 2016-11-05 15:18

Java中的super限定

一 super限定介绍Java中允许通过关键字super来调用父类的方法或属性。super不能出现在static修饰的方法中。   二 通过super限定访问父类的成员变量1 代码示例 class BaseClass { public int a = 5; } public class SubClass extends BaseClass { public int a = ...
cakin24 评论(0) 有1103人浏览 2016-09-29 06:44

Java成员变量的初始化和在內存中的运行机制

一 成员变量介绍成员变量包括:实例变量(不以static修饰)和类变量(以static修饰)。 二成员变量的初始化和运行机制1代码片段 class Person { public String name; public static int eyeNum; ) Person p1 = new Person(); //a Person p2 = new Perso ...
cakin24 评论(0) 有800人浏览 2016-09-28 06:55

三张图讲清楚Java中的方法的参数传递机制

一 Java中方法的参数传递机制介绍Java中方法的参数传递机制只有一种:值传递。   二 应用举例1 代码示例 class DataWrap { int a; int b; } public class ReferenceTransferTest { public static void swap(DataWrap dw) { // 下面三行代码实现dw的a、 ...
cakin24 评论(0) 有1833人浏览 2016-09-25 08:06

Java对象在内存中的表示

有这样一行代码Person p = new Person(),它在内存中是怎样表示的呢?这一行代码实际产生了两个东西:一个是p变量,一个是Person对象,它在内存中的表示如下图。 如果希望通知垃圾回收机制回收某个对象,只需切断对象的所有引用变量和它之间的关系即可,也即把这些引用变量赋值为null,即p=null。
cakin24 评论(0) 有1200人浏览 2016-09-25 07:22

两张内存变化图揭秘二维数组的初始化

一 代码示例 public class TwoDimensionTest { public static void main(String[] args) { // 定义一个二维数组 int[][] a; // 把a当成一维数组进行初始化,初始化a是一个长度为4的数组 // a数组的数组元素又是引用类型 a = new int[4][]; //a ...
cakin24 评论(0) 有1112人浏览 2016-09-24 22:14

四张內存变化图揭秘引用类型数组的初始化

一代码示例 class Person { public int age; // 年龄 public double height; // 身高 // 定义一个info方法 public void info() { System.out.println("我的年龄是:" + age + ",我的身高是:" + height ...
cakin24 评论(0) 有664人浏览 2016-09-24 21:46

三张內存变化图揭秘基本类型数组的初始化

一 代码示例 public class PrimitiveArrayTest { public static void main(String[] args) { // 定义一个int[]类型的数组变量 int[] iArr; //a // 动态初始化数组,数组长度为5 iArr = new int[5]; //b // 采用循环方式为每个数组元素赋值 ...
cakin24 评论(0) 有601人浏览 2016-09-24 21:25

看透内存中的数组

一 数组在內存中的存储方式看待一个数组时,一定要把数组看成两个部分:一部分是数组引用,也就是在代码中定义的数组引用变量,它存储在内存的栈部分,另一部分是实际的数组对象,这部分存储在內存的堆部分,通常无法直接访问它,只能通过数组引用变量来访问,下图清晰的描述了数组在内存中的存储示意图。 二数组应用举例1代码示例 public class ArrayInRam { public static ...
cakin24 评论(0) 有583人浏览 2016-09-24 20:58

List接口的实现类LinkedList

        LinkedList类是List接口的实现类,这意味着它是一个List集合,可以根据索引来随机访问集合中的元素。除此之外,LinkedList还实现了Deque接口,可以被当成双端队列使用,因此既可以被当成“栈”来使用,也可以当成队列使用。 1 代码示例 import java.util.*; public class LinkedListTest { publi ...
cakin24 评论(0) 有2350人浏览 2016-09-12 20:15

ArrayDeque集合的妙用

        Deque接口是Queue接口的子接口,它代表一个双端队列,该队列允许从两端来操作队列中的元素。Deque不仅可以当成双端队列使用,而且可以当成栈来使用。         ArrayDeque集合是Deque接口的实现类,它是一个基于数组的双端队列,创建Deque时同样可以指定一个numElements参数,该参数用于指定Object[]数组的长度;如果不指定该参数,Deque ...
cakin24 评论(0) 有3986人浏览 2016-09-12 20:01

Java实现一个简单的栈

栈我们可以理解为一个箱子,先放进去的东西在最下面,所以是一个先进后出的原则。下面我们看看一个简单的Demo。   package com.tu.test.stack;   public class Node { int data; Node pre;//previous Node   public Node(int data){ this.data = data; } } ...
wuhoujian322 评论(0) 有597人浏览 2016-09-02 11:46

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics