数据结构与算法
数据结构是工具, 算法是通过合适的工具解决特定问题的方法.
数据结构的存储方式
数据结构的存储方式只有两种: 数组(顺序存储)与链表(链式存储)
| 数据结构 | 定义 | 数组 | 链表 |
|---|---|---|---|
| 队列/栈 | 需要扩容 | 更多空间存储指针 | |
| 图 | 多对多 | 邻接矩阵 | 邻接表 |
| 散列表 | 通过散列函数将键映射到一个大数组里 需要解决散列冲突 |
线性探查法 | 拉链法 |
| 树 | 一对多 | 堆, 完全二叉树,不需要节点指针 | 不一定是完全二叉树, 衍生出各种巧妙的设计 eg. 二叉搜索树/AVL树/红黑树/区间树/B树等, 应对不同的问题. |
数据结构的基本操作
遍历(找) + 访问(改) (具体点: 增删改查)
两种形式: 线性(for/while循环) & 非线性(递归)