二叉搜索树 BST
满足以下特性的二叉树是棵二叉搜索树(Binary Search Tree):
- 每个元素有一个关键字,并且任意两个元素的关键字都不同;因此所有关键字都是唯一的;
- 在根节点的左子树中,元素的关键字(如果有的话)都小于根节点的关键字;
- 在根节点的右子树中,元素的关键字(如果有的话)都大于根节点的关键字;
- 根节点的左右子树也都是二叉搜索树。
AVL 搜索树
AVL 树是 Adelson-Velskii 和 Landis 在 1962 年提出的:
- AVL 搜索树是一棵二叉搜索树
- 左右子树的高分别为 $$h_L, h_R$$,则 AVL 搜索树有:$$|h_L - h_R| \le 1$$
- AVL 搜索树根节点的左子树和右子树也是 AVL 搜索树。
红黑树
红黑树:
- 红黑树是一个带有颜色的二叉查找树,所有结点均是红色或黑色;
- 根是黑色;
- 所有叶子都是黑色(叶子结点是外部结点);
- 每个红色结点必须有两个黑色结点;
- 从任一节点到其每个叶子的简单路径都包含相同数量的黑色结点。
B-树
根据 Knuth 的定义,一个 m 阶的B树是一个有以下属性的树:
- 每个节点最多有 m 个子节点;
- 每个非叶子节点(除根节点)最少有 $$\displaystyle [\frac{m}{2}] $$ 个子节点;
- 如果根节点不是叶子节点,那么它至少有两个子节点;
- 有 k 个子节点的非叶子节点拥有 k − 1 个键;
- 所有的叶子节点都在同一层。