红黑树是保持“黑平衡”的二叉树:对于黑平衡是指,从根节点开始搜索,一直搜索到叶子节点,所经历的黑色节点的个数是一样的。 黑平衡二叉树,严格意义上,不是平衡二叉树:左右子树的高度差可能大于1,时间复杂度是O(logn),最大高度:2logn,红黑树不会像二分搜索树一样退化为链表。 查找的时间上面会比AVL树慢一点,...
平衡二叉树,又称AVL树指的是左子树上的所有结点的值都比根结点的值小,而右子树上的所有结点的值都比根结点的值大,且任意一个结点左 子树与右子树的高度差最大为1。 2.2、重点操作 发生的情况:当对二叉树进行插入或者删除的时候,有可能造成二叉搜索树失去平衡,造成搜寻效率低落的情况。 2.2.1、插入: 当向二叉...
由红黑树的概念得知,红黑树方案和AVL树的方案对比,我们可以得知: AVL树是一颗宁折不弯的树:它容不下一点偏差,AVL树任何时候都是一颗绝对的平衡搜索二叉树;但是也由于这个特性,当我们面对频繁的修改时,它将会频繁的调整(旋转)自己以达到,标准平衡搜索二叉树的要求,这会导致效率的下降。 红黑树是一颗懂得卸力的树...
二叉搜索树(BST)是二叉树的一种,但是只允许在左侧储存比父节点小的数据,在右侧储存比父节点大的数据。 和链表一样,通过引用来表示节点之间的关系,在双向链表里,每个节点有俩引用,一个指向上一个节点,一个指向下一个节点,对于二叉搜索树也使用同样方式,不同的地方是一个指向左侧节点,一个指向右侧节点(树中会称...
嗯,闲来无事做,看看二叉树。 要看红黑树,得先了解二叉搜索树。 二叉搜索树,也叫二叉查找树,Binary Sort Tree or Binary Search Tree ,都是BST。 基本性质: 1.定义空树是一颗二叉查找树 2.左子树节点的所有节点的值都小于根节点的值。 3.右子树所有节点的值都大于根节点的值。 4.左右子树都是BST(递归定义...
本文主要回顾二叉树、二叉搜索树、平衡二叉搜索树、AVL树、B树、红黑树。包含具体的实现代码、部分方法的注释。 树间的继承关系: BinaryTree实现BinaryTreeInfo接口 BinarySearchTree继承BinaryTree BalanceBinarySearchTree继承BinarySearchTree AVLTree和RBTree继承BalanceBinarySearchTree ...
二叉树结构越平衡,则效率就越好。红黑树:进一步优化,为了解决转变为二叉平衡树时左旋,右旋效率低下,进一步作出以下限定。(1)首先具备二叉查找树的特点。(2)叶子节点是黑色的空节点,不存数据。(3)没有相邻的红色节点,之间必然存在黑节点隔开。(4)根节点是黑色的。(5)节点到其叶子节点包含的黑色节点...
平衡二叉树定义(AVL): 它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。 红黑树 红黑树大值定义和平衡二叉树相同,但是具有以下几个特点 性质1. 节点是红色或黑色。
是所谓的“平衡”问题; AVL平衡二叉搜索树定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为平衡二叉树.平衡因子BF=左子树深度-右子树深度.平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。如图所示为平...
(2)左右子树仍然为平衡二叉树. 平衡因子BF=左子树深度-右子树深度. 平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。 如图所示为平衡树和非平衡树示意图: RBT 红黑树 AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多; ...