深度:

  • 从根到节点路径的长度
  • 树的每一层包含了同一深度的所有节点

高度:

  • 根到叶节点最长的路径
  • 树中节点的最大深度

这里写图片描述

二叉搜索树的所有操作的时间复杂度为O(h),即O(lgn)(在排序中已证明)。
二叉搜索树的操作复杂度和高度密切相关。为了防止子树之间的高度相差过大,使用随机次序插入元素时的高度为O(lgn)

由于无法保证总是随机的构造二叉搜索树,所以通过红黑树和B树(磁盘的数据库维护)

红黑树:平衡二叉树的一种。通过节点的颜色保证路径之间的长度相差不超过一倍。

  1. 根结点和叶节点为黑色
  2. 父节点为红色,子节点都为黑色
  3. 每条路径的黑色节点数目一致

所以新增节点的颜色为红色( 根据第3条),父节点的颜色为黑色(根据第4条)。然后新节点按照二叉搜索树的规则插入。发现不符合规则时需要进行旋转和调整。

猜你喜欢

转载自blog.csdn.net/qq_34488711/article/details/80044158