第10章 基本数据结构 — 章节汇总

章节概览

本章是 Part III 数据结构的开篇,介绍了四种基本数据结构:(Stack)、队列(Queue)、链表(Linked List)和有根树(Rooted Tree)。这些数据结构是后续复杂数据结构(二叉搜索树、红黑树、B树等)的基础。栈和队列基于数组实现,提供 的基本操作;链表通过指针实现灵活的动态集合操作;有根树的表示方法为后续树结构算法奠定基础。


10.1 简单的基于数组的数据结构

小节核心主题关键结论
10.1 简单的基于数组的数据结构数组、矩阵、栈、队列数组 随机访问;栈/队列各操作

核心思路:数组是连续内存存储的数据结构,支持 随机访问。栈是后进先出(LIFO)的数据结构,支持 PUSH/POP 操作。队列是先进先出(FIFO)的数据结构,支持 ENQUEUE/DEQUEUE 操作。栈和队列都可以用数组高效实现,各操作均为


10.2 链表

小节核心主题关键结论
10.2 链表单/双链表、哨兵、循环链表SEARCH ;INSERT/DELETE (已知位置)

核心思路:链表通过指针将对象线性连接,顺序由指针而非数组索引决定。双链表的每个元素包含 nextprev 指针,支持双向遍历。哨兵(sentinel)是哑节点,可以简化边界条件处理,消除空链表的特判。循环链表的尾节点指向头节点,实现环形结构。


10.3 有根树的表示

小节核心主题关键结论
10.3 有根树的表示二叉树、left-child/right-sibling每个节点固定2个指针; 空间

核心思路:二叉树每个节点包含 leftrightparent 三个指针。对于任意多叉树,使用 left-child/right-sibling(LCRS)表示法:每个节点包含 left-child(最左子节点)和 right-sibling(右兄弟)两个指针,将多叉树统一为二叉树表示。LCRS 表示法空间效率高(每个节点固定 2 个指针),是后续树算法的标准表示。


本章核心知识点

关键数据结构对比

数据结构访问搜索插入删除空间
数组
队列 首/尾
双链表
二叉树

核心操作复杂度

操作队列双链表
插入PUSH ENQUEUE LIST-INSERT
删除POP DEQUEUE LIST-DELETE
搜索LIST-SEARCH

与前序章节的知识关联

前序章节关联方式
第2章 入门栈用于递归(2.3节分治法);数组是插入排序/归并排序的基础
第6章 堆排序堆是用数组表示的二叉树(6.1节),与10.3节的树表示互补
第7章 快速排序栈用于快速排序的迭代版本(尾递归优化)
第3章 运行时间RAM模型假设数组访问 (10.1节的基础)

学习路线

第10章学习路径:
  10.1 简单的基于数组的数据结构(数组→栈→队列)
    → 10.2 链表(指针→双链表→哨兵→循环链表)
      → 10.3 有根树的表示(二叉树→LCRS表示)

学习建议

本章是数据结构的基础,内容相对直观但细节重要。10.1 的栈和队列是后续算法(DFS、BFS、表达式求值)的核心工具。10.2 的链表操作(尤其是哨兵优化)需要仔细理解指针操作的正确性。10.3 的 LCRS 表示法是后续第12章(二叉搜索树)和第13章(红黑树)的基础,务必掌握其与原始多叉树的对应关系。

基本数据结构