【算法】四大基础数据结构
所有复杂集合和算法,最终都可以追溯到数组、链表、树、图这四大类。
🔹 四大基础数据结构
-
数组(Array)
- 固定长度、连续内存存储。
- Java 中:
int[]
,String[]
。 - 演变:字符串、动态数组(
ArrayList
)、哈希表(桶)、堆(完全二叉树用数组实现)。
-
链表(Linked List)
- 节点 + 指针,顺序存储。
- Java 中:
LinkedList
、ConcurrentLinkedQueue
。 - 演变:栈、队列、跳表、哈希表冲突链。
-
树(Tree)
- 层次结构,父子节点关系。
- Java 中:
TreeMap
、TreeSet
(底层红黑树)。 - 演变:二叉树 → 平衡树(AVL/红黑树) → B树/B+树(数据库索引) → Trie(前缀树)。
-
图(Graph)
- 顶点 + 边,用邻接表 / 邻接矩阵存储。
- Java 没有直接内置图结构,常用集合封装实现。
- 演变:社交网络、最短路、网络流等算法应用。
🔹 演变关系(简化版)
数组 → 字符串、哈希表、堆
链表 → 栈、队列、跳表、哈希表冲突链
树 → 二叉树 → 平衡树(AVL/红黑树) → B树/B+树 → Trie
图 → 基于邻接表/邻接矩阵,结合树和链表