全部类别

树与有序结构13

用层级、键序或堆序组织数据,支持查找、范围访问和优先级。

二叉树Binary tree

每个节点至多有两个孩子,用父子关系表达层级。

遍历 O(n)O(n);查找不保证 O(log⁡n)O(\log n)

层级表示、表达式树与其他树结构的基础。

二叉搜索树Binary search tree

按键的大小关系把记录放在左右子树。

基本操作 O(h)O(h);退化时 h 可达 n

有序字典与平衡搜索树的基础。

AVL 树AVL tree

严格限制左右子树的高度差。

查找 / 插入 / 删除 O(log⁡n)O(\log n)

需要严格控制搜索路径长度的有序集合。

B / B+ 树B-tree family

在一个节点内保存多个键,降低树高和访问次数。

高度约 O(log⁡Bn)O(\log_{B} n),B 为有效分支因子
区间树Interval tree

为区间集合维护可剪枝的边界信息。

相交查询成本包括查找及结果输出

地址重叠、范围冲突、区间检索。

线段树Segment tree

递归划分下标区间,为每个区间维护聚合值。

常见点更新 / 区间查询 O(log⁡n)O(\log n)

动态区间和、最值及可组合的区间聚合。

树状数组Fenwick tree

用下标的最低有效位组织可复用的前缀聚合区间。

点更新 / 前缀和 O(log⁡n)O(\log n),空间 O(n)O(n)

频繁点更新与前缀统计、计数和排名。

13 个概念