跳转至

栈、队列与数组

栈

基本概念

image-20260330192702690

栈的顺序存储实现

image-20260330193231978

栈的链式存储实现

image-20260330193351537

队列

基本概念

image-20260330193521272

队列的顺序存储实现

image-20260330194530719

队列的链式存储实现

image-20260330195002702

双端队列

image-20260330200000509

应用

栈在括号匹配中的应用

表达式求值

image-20260330202508511

image-20260330203644338

栈在递归中的应用

队列的应用

  1. 树的层次遍历。
  2. bfs
  3. FCFS

特殊矩阵的压缩存储

  1. 求a[i, j]是三对角矩阵(带状矩阵)中第几个元素:前i - 1行为3(i - 1) - 1 = 3i - 4, 每行的j - i可以映射成-1, 0, 1, 加上2后,就代表这是这行的第几个元素,因此,结果为2i + j - 2(数组下标从1开始)

image-20260330211756974image-20260330211813533

习题笔记总结

栈

  1. 共享栈可以节省存储空间,减低发生上溢(存不了了还要存)的可能。为了解决上溢,所以给栈分配一片大区域,但是又可能会浪费空间,而共享栈就很好解决了这个问题--不够了朝邻居借,还不会浪费一大片空间。

队列

特殊矩阵的压缩存储