数据结构的分类
- 线性结构:数组、栈、队列、链表、哈希表……
- 树结构:二叉树、二分搜索树、AVL、红黑树、Treap、Splay、堆、Trie、线段树、K-D 树、并查集、霍夫曼树……
- 图结构:邻接矩阵、邻接表。
数据结构的应用
- 数据库中大量使用各种树结构(如 AVL、红黑树、Treap、伸展树、B 树等)以及哈希表等;
- 操作系统中会有系统栈、优先队列(堆);
- 霍夫曼树用于文件压缩算法;
- 微软实习生,通讯录联系人很多时,查找联系人变慢,使用 Trie 查找就会非常好;
- 图论算法:
- DFS(深度优先遍历)使用栈
- BFS(广度优先遍历)使用队列
简单的关于时间复杂度分析
- O(1), O(n), O(lgn), O(nlogn), O(n^2)
- 简单的说,大O描述的是算法的运行时间和输入数据之间的关系;
本次学习涉及的数据结构
- 数组
- 栈
- 队列
- 链表
- 二分搜索树
- 堆
- 线段树
- Trie
- 并查集
- AVL
- 红黑树
- 哈希表