栈与队列

Posted 在这里, 意淫和实干都值得尊重

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈与队列相关的知识,希望对你有一定的参考价值。

线性表

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

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

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

线性表的实际存储方式, 分为两种实现模型

  1. 顺序表
    顺序表将元素顺序地存放在一块连续的存储区内__:连续存放__
  2. 链表
    将元素存放在通过链接构造起来的一系列存储块内__:分散存放__

栈[FILO]

栈的理解

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

特点

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

队列[FIFO]

队列的理解

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

特点:

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

栈与队列的相同点:

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

栈与队列的不同点:

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

栈:

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

队列:

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

以上是关于栈与队列的主要内容,如果未能解决你的问题,请参考以下文章

单调栈与队列的概念与练习!建议收藏

python - 栈与队列(只有代码)

C++,栈与队列

[算法] leetcode栈与队列相关题目详解

算法原理与实践(栈与队列)

第4章 栈与队列-----队列