数据结构与算法.md 5.1 KB


title: 数据结构与算法 tags:

  • topic
  • data-structure-and-algorithm
  • joplin type: topic source_type: reconstructed created: 2026-04-22 updated: 2026-04-27 aliases:
  • 数据结构与算法重构 ---

数据结构与算法

[!abstract] 本主题重构自 数据结构与算法 系列笔记,重点不是背代码模板,而是把“数据如何组织、操作代价如何变化、算法为什么这样设计”整理成可复习的结构。

这门主题在解决什么问题

  • 为什么同样的问题,用不同数据结构会有完全不同的效率和实现难度。
  • 线性结构、树、图等不同结构分别适合表达什么关系。
  • 查找和排序为什么会成为算法题与基础课中的高频核心。
  • 数据结构和算法复杂度如何共同决定程序性能。

推荐复习顺序

  1. [[线性结构]]
  2. [[树与堆]]
  3. [[图结构与遍历]]
  4. [[查找]]
  5. [[排序]]

模块地图

  • [[线性结构]]:顺序表、链表、栈、队列、串,以及栈队列应用。
  • [[树与堆]]:二叉树、二叉排序树、AVL 树、堆和它们的操作逻辑。
  • [[图结构与遍历]]:邻接矩阵、邻接表、BFS、DFS 与图的表达方式。
  • [[查找]]:顺序查找、折半查找、查找判定和查找结构选择。
  • [[排序]]:插入、交换、选择、快速、堆等排序思路与复杂度比较。

关键概念

  • [[顺序表]]
  • [[链表]]
  • [[栈]]
  • [[队列]]
  • [[KMP]]
  • [[二叉树]]
  • [[堆]]
  • [[二叉排序树]]
  • [[AVL树]]
  • [[图]]
  • [[查找算法]]
  • [[排序算法]]

常见误区

  • 把数据结构理解成“代码容器”,忽略它本质是数据关系和操作约束的抽象。
  • 只背增删查改代码,不比较不同结构在时间复杂度和适用场景上的差异。
  • 把栈和队列都当成线性表的小变种,却不抓住 LIFO / FIFO 的本质限制。
  • 只会背树和图的遍历顺序,不理解遍历过程为何需要递归、栈或队列支撑。
  • 把排序算法只按代码模板记忆,不比较稳定性、平均复杂度和适用输入特征。

来源范围

  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/1.线性表的顺序存储实现.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/1.线性表 -- 顺序表.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/2.线性表 -- 单链表.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/3.线性表 -- 双链表.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/4.操作受限的线性表 -- 栈 -- 顺序栈.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/5.操作受限的线性表 -- 栈 -- 链栈.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/6.操作受限的线性表 -- 队列 -- 顺序队列.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/7.操作受限的线性表 -- 队列 -- 链队列.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/8.栈和队列的应用.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/9.串.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/11.图.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C++)数据结构与算法/12.二叉排序树.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/2.二叉树的实现和应用.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/3.堆--以最大堆为例.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/4.查找.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/5.二叉排序树.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/6.平衡二叉树(AVL树).md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/7.图.md]]
  • [[raw/Joplin/计算机专业基础/数据结构与算法/(C)840数据结构与算法/8.排序.md]]
  • [[raw/Documents/算法导论(原书第3版) (Thomas H.Cormen,Charles E.Leiserson etc.) (Z-Library)/算法导论(原书第3版) (Thomas H.Cormen,Charles E.Leiserson etc.) (Z-Library).md]]
  • [[raw/Documents/算法图解 ((美)巴尔加瓦(Aditya Bhargava)著, 袁国忠译) (Z-Library)/算法图解 ((美)巴尔加瓦(Aditya Bhargava)著, 袁国忠译) (Z-Library).md]]
  • [[raw/Documents/LeetCode 101 - A Grinding Guide/LeetCode 101 - A Grinding Guide.md]]
  • [[raw/Documents/数据结构、算法与应用 C++语言描述 原书第2版 (( MEI ) SA NI . WANG LI ZHU . LIU ZHI HONG) (Z-Library)/数据结构、算法与应用 C++语言描述 原书第2版 (( MEI ) SA NI . WANG LI ZHU . LIU ZHI HONG) (Z-Library).md]]

相关入口

  • [[Documents资料库]]
  • [[joplin-overview]]
  • [[joplin-rebuild-schema]]