跳到主要内容

数据结构与算法

数据结构与算法

数据结构关心「数据怎么组织」,算法关心「问题怎么一步步解决」。两者合在一起,决定了程序能不能在合理时间内跑完、内存会不会爆、代码好不好维护。

本教程面向初学者,示例以 C / C++ 为主,目标是建立清晰基本功,而不是刷竞赛题。

学习建议

按侧边栏顺序阅读。先搞清「是什么、支持什么操作、复杂度如何」,再对照代码实现。全书各章已按详细教程标准写完初版~加深版;个别专题(如完整 AVL 删除、KMP 全推导)仍可按需继续加长。

你需要什么基础

  • 会写简单的 C 或 C++ 程序(变量、数组、指针、函数、结构体)
  • 不要求先学完 STL;正文中会在合适位置对照标准库

若 C 语言还不熟,可先阅读站内 C 语言教程

章节地图

一级分类主要内容
概述概念、复杂度、递归思想
基本算法设计思想蛮力、分治、减治、贪心、动态规划
线性表顺序表;单向 / 双向 / 循环 / 静态链表
栈和队列栈、队列、循环队列、双端队列、优先队列
串、数组和广义表数组、特殊矩阵、串与匹配、广义表
树和二叉树树与二叉树、遍历、BST、AVL、堆、哈夫曼树、并查集
存储、遍历、最短路径、最小生成树、拓扑排序
查找顺序查找、二分查找、哈希表与冲突
排序插入 / 交换 / 选择 / 归并 / 基数等及比较

详细条目见 SUMMARY.md