welcome!~,This is a |

duuuuu17

园龄:1年11个月粉丝:0关注:0

CS61B学习日记2

今天学习了B树和红黑树的概念
总结:
1.在cs61b中B树分为2-3树和2-3-4树:

  1. 其中主要的关键点是定L的大小。L是指一个节点最多拥有的元素个数。
  2. B树的不变量(我记作为限制):
    2.1) 每个叶子结点到根的路径数相同。
    2.2) 每个包含元素个数为k的非叶子结点,其必有链接k+1个叶子结点
    2.本课程中将的红黑树称为左倾红黑树(LLRBT:Left-Leaning Red Black Tree)。
    其思想是利用旋转方法使LLRBT能够转变为BST,并且每条左红链接能够和一个2-3数进行对应。
    2.1 限制:
    1.在2-3树的基础之上
    2 每个新插入的节点都使用红链接线。
    LLRBT的高度不超过(对应2-3树的树高X2+1)
    2.2 旋转思想:
    1)旋转:
    1.1)左上旋:将旋转点作为右子树的左孩子(其中右子树的原本的左孩子作为旋转点的右孩子)
    1.2)右下旋:将旋转点作为左子树的右孩子(其中左子树的原本的右孩子作为旋转点的左孩子)
    2.3 新插入点安装BST插入后树的形状需要进行调整的情况:
    2.1)插入点使树变为右倾:此时利用左上旋将其转变为左倾
    2.2)插入点连续左倾:此时利用右旋将其连续左倾节点变为同兄弟节点
    2.3)颜色反转:也就是接2.2情况进行调整树后,因为在LLRBT中没有右红链接线,我们将把子链接的红链接线变为黑链接线,而父结点的与爷结点的黑链接线转变为左红链接线
    不过需要注意的是,在红黑树中新插入点需要进行转换的情况会有很多。需要根据情况不断调整树的形状为BST。
    最主要的是,经过这些树的不断变形,其结点仍符合BST的节点规则(左孩子值<父结点值<右孩子值)。
    复杂度的话为logN。
    ps:小感叹一下前辈们巧妙的思想。

本文作者:duuuuu17

本文链接:https://www.cnblogs.com/duuuuu17/p/17687288.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   duuuuu17  阅读(58)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起