平衡二叉树(BTS)

平衡二叉树(BST)

定义:

任意节点的左右子树高度差不能超过1

为什么:

有可能出现spindly的树,让树logn的效率退化为n的链表

那为什么不随机位置加节点?

因为要用它构建map,需要找对应的位置

解决方法;旋转

在这里插入图片描述
在这里插入图片描述

旋转可以缩短或者加长树高度,保护了树的特性不会退化成链表

什么时候?

每次删除或者插入的时候

类型:

区别:不同的旋转方法,2-3树和b树不用旋转

AVL树

红黑树

  1. 红色链总是向左
  2. 没有节点有两个红色链
  3. 从root到每一个子叶都有同样数量的黑色链
  4. 也被称为(LLRB)
  5. 2-3树都有一个对应的红黑树,红黑树不可能是二叉树的两倍高度

2-3树

  • 理念:如果我永远不加新的子叶,就不会出现不平衡的情况

  • 所以选择一个节点里放多个元素。但是如果不限制数量也会出问题

  • 如果一个节点里超过了限制数量,就把他递给父类

  • 2是一个节点里有多少元素

  • 3是一个节点有多少子叶

  • 填满了之后就往上移动,然后分裂

  • 增加高度的唯一方式就是分裂

B树

2-3树和2-3-4树也是B树的一种,但是通常说B树是指M很

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值