Appearance
本册知识结构总结
恭喜你完成了数据结构基础篇的学习!本章对全书内容进行系统回顾。
知识体系概览
数据结构基础
├── 线性结构
│ ├── 数组
│ ├── 字符串
│ ├── 链表
│ ├── 栈与队列
│ └── 单调栈/队列
├── 哈希结构
│ └── 哈希表
├── 树形结构
│ ├── 二叉树
│ └── 二叉搜索树
├── 堆
│ └── 优先队列
└── 位运算各部分核心要点
数组
- 双指针技巧
- 滑动窗口
- 前缀和
- 原地操作
字符串
- KMP 模式匹配
- 字符串哈希
- 双指针处理
链表
- 快慢指针
- 虚拟头节点
- 递归思想
栈与队列
- 括号匹配
- 表达式求值
- BFS/DFS
单调栈
- 下一个更大元素
- 柱状图最大矩形
- 滑动窗口最值
哈希表
- O(1) 查找
- 两数之和模式
- 去重与计数
二叉树
- 前中后序遍历
- 层序遍历
- 递归与迭代
BST
- 中序有序性
- 查找/插入/删除
- 验证与构造
堆
- 优先队列
- Top K 问题
- 多路归并
位运算
- 异或技巧
- Brian Kernighan
- 状态压缩
常用时间复杂度
| 数据结构 | 查找 | 插入 | 删除 |
|---|---|---|---|
| 数组 | O(n) | O(n) | O(n) |
| 链表 | O(n) | O(1) | O(1) |
| 哈希表 | O(1) | O(1) | O(1) |
| BST | O(h) | O(h) | O(h) |
| 堆 | O(n) | O(log n) | O(log n) |
解题思维导图
- 理解问题:输入输出、边界条件
- 识别模式:属于哪类问题
- 选择数据结构:根据操作需求
- 设计算法:暴力→优化
- 编码实现:注意边界处理
- 测试验证:特殊用例
刷题建议
- 按专题刷:先掌握一类再进入下一类
- 先理解后记忆:理解为什么这么做
- 手写代码:不要只看答案
- 总结模板:建立自己的代码库
- 定期复习:遗忘曲线