线性数据结构
本章以选择题形式考察,需要熟练掌握栈和队列的操作以及应用,另外还需要了解如何用数组实现栈和队列,可能会在代码题中考察。
学习思维导图:
## 栈、队列和数组
### 栈和队列基本概念
### 栈和队列的顺序存储结构
### 栈和队列的链式存储结构
### 多维数组的存储
### 特殊矩阵的压缩存储
### 栈、队列和数组的应用
三类对象的共同视角
栈、队列和数组都可以借助连续空间实现,但它们限制操作位置的方式不同:
| 对象 | 核心次序 | 允许直接操作的位置 | 常见考察边界 |
|---|---|---|---|
| 栈 | 后进先出(LIFO) | 仅栈顶 | 上溢、下溢与栈顶指针含义 |
| 队列 | 先进先出(FIFO) | 队头删除、队尾插入 | 队空/队满判定与循环回绕 |
| 数组 | 下标确定逻辑位置 | 可按下标访问 | 行主序、列主序与压缩下标公式 |
顺序实现的优势是地址计算直接,链式实现的优势是空间可按需申请。循环队列不是另一种逻辑队列,而是为了让顺序队列复用数组首部空闲单元的实现技巧;判断其长度或空满状态时,必须采用题目约定的指针和保留单元规则。