栈与队列

线性表

定义: 零个或多个数据元素的有限序列

线性表_(linear list)_是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列

是一个序列, 元素之间是有顺序的, 若元素存在多个, 第一个元素无前驱, 最后一个元素无后继, 其他每一个元素都只有一个前驱和后继

线性表的实际存储方式, 分为两种实现模型
  1. 顺序表
    顺序表将元素顺序地存放在一块连续的存储区内__:连续存放__
  1. 链表
    将元素存放在通过链接构造起来的一系列存储块内__:分散存放__

栈[FILO]

栈的理解

栈是一种容器,一种受限线性表__[先进后出]__, 可用顺序表或链表实现

特点

只允许在容器的一端__:[Top:容器的顶端],进行数据的操作:[栈顶加入数据:Push, 栈顶输出数据:Pop]__, 先进后出,默认操作此前存入的最后一个元素

[========]

队列[FIFO]

队列的理解

队列是一种容器, 一种受限线性表__[先进先出]__, 可用顺序表或链表实现

特点:

只允许在一端进行插入操作__[队尾], 在另一端进行删除[队头]__操作的线性表, 不允许在中间部位进行操作

[========]

栈与队列的相同点:

1.都是线性结构。
2.插入操作都是限定在表尾进行。
3.都可以通过顺序结构和链式结构实现。、
4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。
5.多链栈和多链队列的管理模式可以相同。

[========]

栈与队列的不同点:

1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2.应用场景不同;

扫描二维码关注公众号,回复: 102913 查看本文章
栈:

常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;

队列:

常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。
3.顺序栈能够实现多栈空间共享,而顺序队列不能。

猜你喜欢

转载自www.cnblogs.com/amou/p/8983244.html