基础数据结构
数据结构是程序的骨架。选对结构,算法才高效。
一、线性结构
- 数组:连续内存,随机访问 O(1),插入删除 O(n)。
- 链表:节点串连,增删 O(1),访问 O(n);有单/双/循环之分。
- 栈/队列:栈后进先出(LIFO),队列先进先出(FIFO),均可用数组或链表实现。
二、树
二叉树、二叉搜索树、平衡树(AVL/红黑树)、堆(完全二叉树)、Trie(前缀树)。红黑树是很多有序容器的基础;堆常用于优先队列与 TopK。
三、图与哈希
图用邻接表/矩阵表示,支撑最短路径、拓扑排序等。哈希表以 O(1) 平均复杂度实现映射,核心是哈希函数与冲突处理(链地址/开放寻址)。
没有"最好"的结构,只有"最合适"的结构:要快速查找用哈希,要范围有序用树,要 FIFO 用队列。