Tree树

树的存储方式都是以链表的方式来实现的

1.二叉排序树

        1.1若左侧不为空,则左边的所有节点的值都小于它的根节点的值

        1.2若右侧不为空,则右边的所有节点的值都大于或等于它的根节点的值

        1.3因此左右两侧也称为二叉排序树

问题:

当二叉排序树两侧不平衡时,那么树的作用不就没有意义了吗

根据以上问题,衍生出了平衡二叉树

2.平衡二叉树

        任意子节点的高度差都要小于等于1

        

        那么这个树结构需要通过右旋转来形成平衡二叉树

        2.1右旋转

            

          2.2左旋转

              

        2.3双旋转

                当前节点的左子树的右子树的高度大于当前节点的左子树的左子树

                 这种情况需要先将左子树进行左旋转,再将根节点进行右旋转

3.B树

 

 mysql中主键索引的存储就是以B树的方式实现

4.2-3树

        2-3 树是一种绝对平衡的二叉树, 它的左右子树的高度都是相同的,且2-节点可以存储一个元素,3-节点可以存储两个元素,当一个节点容纳了3个元素需要进行分裂操作

        

 再新增数据17,之后需要分裂操作,但发现分裂之后,子节点高度不一致需要聚合操作

 再新增数据40,先进行聚合操作

聚合之后再进行分裂操作

 再新增数据27,28

 聚合操作之后

5.红黑树

 满足条件

1.每个叶子节点必须是黑色

2.从任意节点到叶子节点,经过的黑色节点数量是一样多的

3.如果一个节点是红色,那么它的左右节点一定都是黑色

5.1红黑树插入元素

元素新增顺序:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值