K:栈和队列的比较
2024-09-17 22:28:21
栈和队列的相同点:
- 都是线性结构,即数据元素之间具有“一对一”的逻辑关系
- 都可以在顺序存储结构和链式存储结构上进行实现
- 在时间代价上,插入和删除操作都需常数时间;在空间代价上,情况相同
- 多链栈和多链队列的管理模式可以相同
栈和队列的不同点:
- 删除数据元素操作的位置不同。对于栈而言,其在一端插入数据元素,同时在该端删除数据元素,对于队列而言,其在一端插入数据元素,在另一端删除数据元素。
- 两者的应用场景不同。具有后进先出(或先进后出)特性的应用需求,可以使用栈来进行管理。对于具有先进先出(或后进后出)特性的应用需求,可以使用队列进行管理
- 顺序栈可以实现多栈空间共享,而顺序队列则不同。在实际应用中,经常会出现在一个程序中需要同时使用两个栈或队列的情况。若采用顺序存储,就可以使用一个足够大的数组空间来存储多个栈,即让多个栈共享同一存储空间。如图:
其为两个栈共享空间的示意图。其中,把数组的两端设置为两栈各自的栈底,两栈的栈顶从两端开始向中间延伸,可以充分利用顺序栈单向延伸的特性,使两个栈的空间形成互补,从而提高存储空间的利用率。然而,对于顺序队列,就不能像顺序栈那样在同一个数组中存储两个队列,除非总有数据元素从一个队列转入另一个队列。
最新文章
- 操作DOM
- tp5 中 model 的删除方法
- jquery ajax提交表单数据的两种方式
- Codeforces Round #258 (Div. 2)[ABCD]
- 基础总结篇之二:Activity的四种launchMode
- [HeadFirst-JSPServlet学习笔记][第三章:实战MVC]
- 在mysql 中两种锁定问题
- vbs鼠标方法——模拟鼠标按键
- Linux常用操作命令(二)
- 初识JavaScript(一)
- vue2.x 下载后台传过来的流文件(excel)后乱码问题
- PyCharm 新建文件时默认添加作者时间等
- [蓝桥] 算法训练 K好数
- 跳过用例skip
- 多个div中的label标签对齐
- BZOJ 4569 [Scoi2016]萌萌哒 | ST表 并查集
- Pycharm 2017.1 激活服务器
- linux strace 命令详解
- Skynet服务器框架(十) CentOS 防火墙设置
- mysql中binlog_format的三种模式