一、顺序表
扩容
二、链表
单向、双向、循环
翻转链表之头插法
三、队列
FIFO
循环队列防止假扩容
四、栈
LIFO
栈是递归的底层实现
栈用来解决事件与事件之间的完全包含关系的问题
五、树 二叉树
完全二叉树、满二叉树、完美二叉树
十字链路法:将n叉树转化为二叉树 左孩子、右兄弟
广义表表示二叉树
六、排序
稳定排序:插入O(N^2)、冒泡O(N^2)、归并(NlogN)
不稳定排序:选择排序O(N^2)、快速排序(NlogN)
七、查找
二分查找、三分查找
哈希表:哈希函数、冲突处理方法
八、堆和优先队列
大根堆、小根堆
堆排序O(NlogN)
九、森林和并查集
解决连通性问题
Quick-find | Quike-Union | weight Quick-Union (按秩优化) | 路径压缩 | |
合并 | O(N) | O(树高) | O(logN) | O(1) |
联通 | O(1) | O(树高) | O(logN) | O(1) |
实际可以只使用路径更新,无需按秩优化