栈和队列

1、栈

  栈 者,存储货物或者供旅客住宿的地方,可引申为仓库

  (1)数据结构中的栈

    栈是一组数据的存放方式,特点是先进后出,后进先出               栈和队列_栈栈和队列_栈_02

栈和队列_队列_03

 

 

  (2)代码的运行方式

    表示函数的一层层调用

栈和队列_栈_04

 

  (3)内存区域

    栈也是存放数据的一种内容区域

    程序运行的时候,需要内存空间存放数据,一般来说,系统会划分出两种不同的内存空间:一种叫做stack(栈),另一种叫做heap(堆)

    stack是有结构的,每个区块按照一定次序存放,可以明确知道每个区块的大小

    heap是没有结构的,数据可以任意存放,因此,stack的寻址速度要快于heap

    只要是局部的、占用空间确定的数据,一般都存放在stack里面,否则就放在heap里面,所有的对象都存放在heap里面

 

2、队列

  队列是一种操作受限制的线性表

  特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作

  进行插入操作的端称为队尾,进行删除操作的端称为队头

  因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出线性表

栈和队列_栈_05

栈和队列_队列_06

栈和队列_队列_07