在此之前,已经了解过顺序表和链表了,那么现在要了解的栈和队列,从本质上来说是基于上述俩个的,栈讲究“”后进先出”,而队列与之不同,要求“先进先出”,对于栈来说,根据规则,我们了解到,栈的“入栈”即为“尾插”,栈的出栈也要找到“尾数据”,考虑到实用性,我们的“栈“是基于顺序表完成的。这里就不细细展开了,而对于本次要讲的“队列”,根据使用规则,会发现,入队列类似“尾插”,出队列是“首”,因此,为了效率
分类:
其他好文 时间:
2020-04-08 13:40:07
阅读次数:
104
内联定义: 内联是为了节约函数的调用开销而诞生的,我们在调用一个普通函数的时候,存在的额外的开销(压栈、出栈)等。内联是让编译器使用内联的方式编译函数,在调用这个内联函数的时候,直接把这个函数展开,不存在压栈、出栈的操作 例子 对于内联函数传参还是按照正常的函数进行的,也会有函数的类型检查。但是宏定 ...
分类:
编程语言 时间:
2020-04-06 17:27:03
阅读次数:
57
1.什么是栈 [1]. 栈是一种只能在一端进行插入和删除操作的线性表;插入:入栈(push);删除:出栈(pop); [2]. 栈是按照“先进后出”(Last In First Out, LIFO)的原则存储数据; 栈顶(Top):允许删除和插入; 栈底(Botton) ; [3]. 栈的分类: 静 ...
分类:
其他好文 时间:
2020-04-06 15:48:39
阅读次数:
60
运行时数据区域 1. 程序计数器 行号指示器,线程私有,本地方法计数器值为null。 2. java虚拟机栈 存储局部变量、方法等信息。每一个方法被调用至执行完毕的过程就对于着一个栈帧从入栈到出栈的过程,进入一个方法时,这个方法需要在栈帧中分配多少空间是完全确定的,运行期间不会改变。栈是线程私有的。 ...
分类:
其他好文 时间:
2020-04-06 15:48:06
阅读次数:
63
堆栈是一种数据结构,指的是数据存取的方式,当定义一个变量时,内存会开辟一段空间 栈(Stack): 先进后出(FILO),在栈顶做插入(压栈)和删除操作(出栈)。 队列: 先进先出(FIFO),在队头做删除操作,在队尾做插入操作。 堆: 堆和它们不同,代码执行时系统动态分配,不存在是先进后出还是先进 ...
分类:
其他好文 时间:
2020-04-05 22:40:44
阅读次数:
97
1.请求上下文和应用上下文入栈 # 将ctx入栈,但是内部也将应用上下文入栈 ctx.push() def push(self): # 获取到的 top == ctx top = _request_ctx_stack.top if top is not None and top.preserved: ...
分类:
其他好文 时间:
2020-04-05 11:44:02
阅读次数:
80
1.哪些内存需要回收? Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不絮执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性。当方法结 ...
分类:
其他好文 时间:
2020-04-01 01:03:42
阅读次数:
77
1、集合输出在之前我们利用了toString()及get()方法对集合进行了输出,其实那都不是集合的标准输出,集合输出有四种方式:Iterator、ListIterator、Enumeration、foreach。(1)Iterator(迭代输出)在jdk1.5之前,在Collection接口中就有 ...
分类:
其他好文 时间:
2020-03-30 21:22:06
阅读次数:
77
一、概述 栈(Stack),也叫堆栈。但是不能称为堆,堆是另外一种数据结构 FILO栈遵循先进后出的原则(First In Last Out) 基本操作有:入栈(压栈)、出栈(退栈) 入栈和出栈都是针对栈顶的操作 二、结构示意图 依次将a、b、c元素压进一个空栈中: 将上述栈中的元素一个一个出栈 由 ...
分类:
其他好文 时间:
2020-03-30 16:04:16
阅读次数:
105
一、思维导图 二、重要概念 1.算法 (1)时间复杂度的计算 2.线性表 (1)头插法建立单链表:建立的表格元素顺序与输入元素顺序相反 (2)尾插法建立单链表 3.栈和队列 (1)Stack 栈的进栈出栈规则: ? 按序进栈→有n个元素1,2,…,n,它们按1,2, …,n的次序进栈(i进栈时, 1 ...
分类:
编程语言 时间:
2020-03-28 20:21:49
阅读次数:
185