红黑树 B-树 B树 B+树

红黑树:一种不要求绝对平衡的二叉树。

B树:多叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点;

B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键字范围的子结点;所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中;

B+树:在B-树基础上,为叶子结点增加链表指针,所有关键字都在叶子结点中出现,非叶子结点作为叶子结点的索引;B+树总是到叶子结点才命中;

B*树:在B+树基础上,为非叶子结点也增加链表指针,将结点的最低利用率从1/2提高到2/3。

以下是红黑树:
在这里插入图片描述
特点

性质1:节点是红色或黑色。
性质2:根节点是黑色。
性质3:每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质4:从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

带来的效果是:最差情况下,最长路径是最短路径的2倍少1。
性能

查找性能和AVL一样都是logn。
插入性能和AVL一样最多两次旋转。
删除最多需要三次旋转,AVL的删除需要的旋转次数不可预计。

以下是B-树:
在这里插入图片描述
比如要查找8,则直接命中8,如果要查找10,则从P2到叶节点命中。

以下是B+树:
在这里插入图片描述
所有非叶子节点都只是索引,比如要搜索5,依然要从P1进入叶节点。由于B+树的这种特性和文件系统完美契合,因此经常应用于文件系统。

以下是B*树:
在这里插入图片描述
比起B+添加了兄弟节点之间的链表指针,区别在于添加新节点时,如果本节点满,兄弟节点空,可以将数据转移到兄弟节点。将结点的最低利用率从1/2提高到2/3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值