数据结构与算法——第3章-栈和队列是线性结构(3.10)

一 概述

1
2
1.为什么说栈和队列是线性存储结构?
2.栈和队列的特点

二 为什么说栈和队列是线性存储结构?

2.1 线性存储结构

1
2
3
4
5
6
7
栈和队列是线性结构吗?这里再次强调,栈和队列是线性结构。

数据结构中,如果想知道存储结构之间是否相同和类似,只需要比对它们存储的目标数据之间的逻辑关系即可,
所存储数据的逻辑关系相同,则说明它们是同一类存储结构;反之,则不是。

通过前面的学习我们知道,线性结构,即用于存储逻辑关系为 "一对一" 数据的存储结构,
例如顺序存储结构和链式存储结构。

2.2 栈和队列

1
2
3
4
5
6
回过头再分析栈(如图 1 所示),栈结构中存储的也是逻辑关系为 "一对一" 的数据,
只不过该结构对数据的存储顺序有额外的要求,即数据进栈和出栈要满足 "先进后出" 的要求。
因此可以这么说,栈是一种特殊的线性存储结构。

那么,队列存储结构(如图 2 所示)呢?同栈一样,它存储的也是逻辑关系为 "一对一" 的数据,
但它对数据入队和出队的要求是 "先进先出"。所以说,队列也是一种特殊的线性存储结构。

图示

队列

三 栈和队列的特点

1
2
3
4
5
6
总的来说,栈和队列是线性存储结构,只不过它们比较 "特殊" 而已。

栈和队列,除了都是线性结构外,还有一个共同点,那就是数据的进出,只能在栈和队列的端点处进行。换句话说,
栈结构中,数据的入栈和出栈只能在开口的一端进行;队列中,数据从一端进,从另一端出。

栈和队列最大的区别就是,栈结构中存储数据要求 "先进后出";队列存储数据要求 "先进先出"。

四 参考

  • C语言中文网—栈和队列是线性结构