DSData Structure
数据结构
数据结构不是单独背概念,而是理解“数据如何被组织”和“为什么某种操作更快”。 这一页会把结构特性、复杂度成本和典型使用场景串在一起。
1当前文章
3建设主线
O(n)高频基础复杂度
当前内容
已有内容先从时间复杂度切入。建议先把复杂度概念吃透,再去看具体结构的插入、删除、查找和遍历成本。
建设路线
后续会优先补齐这些基础结构。目标不是面面俱到,而是把最常用、最容易迁移到算法题和工程代码里的内容先打牢。
ARRAYRoadmap
数组、链表与顺序结构
理解连续内存、随机访问、插入删除成本,以及链表在不同场景下的取舍。
STACKRoadmap
栈、队列与受限访问
把 LIFO / FIFO 的访问模式和实际题型联系起来,例如括号匹配、滑动窗口、BFS。
TREERoadmap
树、堆、图与层次结构
从树的递归定义延伸到堆和图,补齐遍历、搜索、优先级与关系建模。
阅读方式
先看操作,再记结构
不要先背定义。更有效的方式是先问“我要频繁做什么操作”,再反推数组、链表、哈希表还是树更合适。
- 查询多还是修改多
- 是否要求顺序或排序
- 是否需要去重、映射或优先级
把复杂度和空间一起看
很多结构在时间上更优,但会引入额外空间或实现复杂度。理解这些取舍,才能真正把结构用到工程问题里。
- 哈希表换时间但占更多内存
- 链表插删快但随机访问慢
- 堆适合 top-k,不适合完整有序遍历
