[zz]栈和队列,双端队列
来源:互联网 发布:食物热量计算器软件 编辑:程序博客网 时间:2024/04/19 02:06
栈和队列
栈
栈只允许访问一个数据项:即最后插入的数据项,移除这个数据项后才能访问倒数第二个插入的数据项,依此类推。
[Java示例代码]
栈的效率
数据项入栈和出栈的时间复杂度都为常数O(1)。这也就是说,栈操作所耗的时间不依赖于栈中数据项的个数,因此操作时间很短。栈不需要比较和移动操作。
队列
队列有点类似栈,只是在队列中第一个插入的数据项会最先被移除(先进先出,FIFO),而在栈中,最后插入的数据项最先移除(LIFO)。队列和栈一样也被用作程序员的工具。它也可以用于模拟真实世界的环境,例如模拟人们在银行里排队等待,或者因特网上数据包等待传送。
[Java示例]
环绕式处理
为了避免队列不满却不能插入新数据项的问题,可以让队头队尾指针绕回到数组开始的位置,这就是循环队列,有时也称为缓冲环。
队列的效率
和栈一样,队列中插入数据项和移除数据项的时间复杂度均为O(1)。
双端队列
双端队列就是一个两端都是结尾的队列。队列的每一瑞都可以插入数据项和移除数据项。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构,在容器类库中有时会用双端队列来提供栈和队列两种功能。
栈只允许访问一个数据项:即最后插入的数据项,移除这个数据项后才能访问倒数第二个插入的数据项,依此类推。
[Java示例代码]
栈的效率
数据项入栈和出栈的时间复杂度都为常数O(1)。这也就是说,栈操作所耗的时间不依赖于栈中数据项的个数,因此操作时间很短。栈不需要比较和移动操作。
队列
队列有点类似栈,只是在队列中第一个插入的数据项会最先被移除(先进先出,FIFO),而在栈中,最后插入的数据项最先移除(LIFO)。队列和栈一样也被用作程序员的工具。它也可以用于模拟真实世界的环境,例如模拟人们在银行里排队等待,或者因特网上数据包等待传送。
[Java示例]
环绕式处理
为了避免队列不满却不能插入新数据项的问题,可以让队头队尾指针绕回到数组开始的位置,这就是循环队列,有时也称为缓冲环。
队列的效率
和栈一样,队列中插入数据项和移除数据项的时间复杂度均为O(1)。
双端队列
双端队列就是一个两端都是结尾的队列。队列的每一瑞都可以插入数据项和移除数据项。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构,在容器类库中有时会用双端队列来提供栈和队列两种功能。
- [zz]栈和队列,双端队列
- 栈和队列、双端队列
- 栈,队列,双端队列
- 栈和队列--队列
- 【栈和队列】队列
- 栈和队列之LinekedList(双端队列)
- 栈,队列和双端队列的操作
- 共享队列和双队列
- 栈、队列和优先队列
- 栈和队列(队列)
- 单调栈、双端队列、单调队列
- java-队列,双端队列、栈
- 队列,优先队列,双端队列
- 队列、双端队列与优先队列
- Java 模拟队列(一般队列、双端队列、优先级队列)
- 队列与双端队列
- 数据结构(队列):双端队列
- 阻塞队列 BlockingQueue和阻塞双端队列 BlockingDeque
- HttpURLConnection CookieManager Post提交
- Collections
- C++构造函数调用构造函数问题
- UML建模的几个重要概念Zz
- 2007年个人站长/SEOer必上网站
- [zz]栈和队列,双端队列
- 如何去掉Access的只读属性之解药
- 开篇
- smart client
- PDA项目的开发
- NP完全性问题
- 使用正则表达式操作html标签中的特定属性
- A example of Log4c
- 如何使用cdonts组件发送html格式邮件