栈与队列
Posted 在这里, 意淫和实干都值得尊重
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈与队列相关的知识,希望对你有一定的参考价值。
线性表
定义: 零个或多个数据元素的有限序列
线性表_(linear list)_是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列
是一个有限序列, 元素之间是有顺序的, 若元素存在多个, 第一个元素无前驱, 最后一个元素无后继, 其他每一个元素都只有一个前驱和后继
线性表的实际存储方式, 分为两种实现模型
- 顺序表
顺序表将元素顺序地存放在一块连续的存储区内__:连续存放__- 链表
将元素存放在通过链接构造起来的一系列存储块内__:分散存放__
栈[FILO]
栈的理解
栈是一种容器,一种受限线性表__[先进后出]__, 可用顺序表或链表实现
特点
只允许在容器的一端__:[Top:容器的顶端],进行数据的操作:[栈顶加入数据:Push, 栈顶输出数据:Pop]__, 先进后出,默认操作此前存入的最后一个元素
队列[FIFO]
队列的理解
队列是一种容器, 一种受限线性表__[先进先出]__, 可用顺序表或链表实现
特点:
只允许在一端进行插入操作__[队尾], 在另一端进行删除[队头]__操作的线性表, 不允许在中间部位进行操作
栈与队列的相同点:
1.都是线性结构。
2.插入操作都是限定在表尾进行。
3.都可以通过顺序结构和链式结构实现。、
4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。
5.多链栈和多链队列的管理模式可以相同。
栈与队列的不同点:
1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2.应用场景不同;
栈:
常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;
队列:
常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。
3.顺序栈能够实现多栈空间共享,而顺序队列不能。
以上是关于栈与队列的主要内容,如果未能解决你的问题,请参考以下文章