title: 数据结构与算法
tags:
- topic
- data-structure-and-algorithm
- joplin
type: topic
source_type: reconstructed
created: 2026-04-22
updated: 2026-04-27
aliases:
- 数据结构与算法重构
---
数据结构与算法
[!abstract]
本主题重构自 数据结构与算法 系列笔记,重点不是背代码模板,而是把“数据如何组织、操作代价如何变化、算法为什么这样设计”整理成可复习的结构。
这门主题在解决什么问题
- 为什么同样的问题,用不同数据结构会有完全不同的效率和实现难度。
- 线性结构、树、图等不同结构分别适合表达什么关系。
- 查找和排序为什么会成为算法题与基础课中的高频核心。
- 数据结构和算法复杂度如何共同决定程序性能。
推荐复习顺序
- [[线性结构]]
- [[树与堆]]
- [[图结构与遍历]]
- [[查找]]
- [[排序]]
模块地图
- [[线性结构]]:顺序表、链表、栈、队列、串,以及栈队列应用。
- [[树与堆]]:二叉树、二叉排序树、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]]