空间:
* 相同之处:
- 逻辑上都是线性结构,都是操作受限的线性表。
- 插入操作都是在表尾(栈尾、队列尾)。
- 都可以实现顺序存储结构与链式存储结构。
- 多链栈与多链队列的管理模式可以相同。
* 不同之处
- 数据元素删除的位置不同。(栈在表尾;队列在表首)
- 数据元素的进出不同。(栈是先进后出;队列是先进先出)
- 顺序栈能够实现多栈空间共享,而顺序队列不能。
- 遍历数据的方式不同。(栈要额外开辟空间)
时间:
* 相同之处:
- 插入与删除操作都需要常数时间。
* 不同之处:
- 遍历数据的时间不同。
使用场景的异同:
栈 : 括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等。
队列:计算机系统中各种资源的管理,消息缓冲器的管理、广度优先搜索遍历等。