堆、栈和队列

2019-03-10  本文已影响0人  大师艾小伦

栈(stack)
又叫堆栈
是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端进行加入数据(push)和输出数据(pop)的运算。保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。
操作

队列(QUEUE)
队列跟堆栈的概念其实还是挺相似的,队列他就是只允许你从一段添加从另一端取出。同栈一样,可以由线性表来实现。
一个队列应该包含的操作有:

双端队列
双端队列是一种具有队列和栈的性质的数据结构。
双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。
其实它可以看成是两个栈的栈底挨在一起。

双端队列的操作:

由此可看 他们之间的区别是:

在java中
堆是内存中实际存储数据的地方
栈是内存中存储数据地址的地方
不相干的东西,不要混淆,闹出笑话

上一篇下一篇

猜你喜欢

热点阅读