关于红黑树的那些事

一、基本性质:

二、旋转

首先说一下二叉树深度和高度的差别

那边高度小向哪边旋

区别:深度是从根节点数到它的叶节点,高度是从叶节点数到它的根节点。
二叉树的深度是从根节点开始(其深度为1)自顶向下逐层累加的;而二叉树高度是从叶节点开始(其高度为1)自底向上逐层累加的。虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。
二叉树结点的度数指该结点所含子树的个数,二叉树结点子树个数最多的那个结点的度为二叉树的度。
二叉树的根结点所在的层数为1,根结点的孩子结点所在的层数为2,以此下去。深度是指所有结点中最深的结点所在的层数。

具体详见博客https://blog.csdn.net/fanpei_moukoy/article/details/23828603

附算法导论第十三章中文答案https://blog.csdn.net/z84616995z/article/details/33336995

什么叫二叉平衡树?

平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树AVL替罪羊树Treap伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci(斐波那契)数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。

红黑树则要求左右高度差不能超过两倍。

三、红黑树的插入

二叉平衡树极端的效果比红黑树好,但是过于完美插入效率比较低,红黑树整体效率较高

为什么要求插入的节点默认为红色?

根据红黑树的性质(3),红黑树要求从根节点到叶子所有叶子节点上经过的黑色节点个数是相同的,因此如果插入的节点着色为黑色,那必然有可能导致某条路径上的黑色节点数量大于其他路径上的黑色节点数量,因此默认插入的节点必须是红色的,以此来维持红黑树的性质(3)

当推到需要把根节点标红时,则不能再递推,需要旋转

四、红黑树的删除

https://www.cnblogs.com/George1994/p/6934930.html

发布了26 篇原创文章 · 获赞 0 · 访问量 7534

猜你喜欢

转载自blog.csdn.net/gaoxiaobai666666/article/details/79877334