B-tree(BTree)、B+tree、红黑树------浅浅的认识
B-tree(Btree)—B-tree即为B树
B树是一种多路自平衡搜索树,它类型于普通的二叉树,但B树允许每个节点拥有更多的子节点。
这里只要知道我们日常所说的B树与B-tree是什么就好,其实就是同一个东西。B-tree树即B树(Btree)
B树的特征:
- 所有的键值分布在整个树中(找到这个键就能找到对应它的值)
- 任何值的出现且只会出现一个节点上(对应上面这条特征)
- 搜索可能在非叶子节点上结束,(要么找到对应的值,要么找不到)
- 在关键字全集内做一次查找,性能逼近二分查找算法
B-tree如图:
B+tree
B+tree是B-tree的一个变种,同样B+tree也是一种多路自平衡的搜索树
它与B-tree树的区别主要有如下 :
- 所有的关键字只会出现在叶子节点上,非叶子节点不会存储真正的data,它只起到指路(索引)的作用
- 所有的叶子节点增加了一个链指针(数据会是有一条链连接起来)
B+tree如图
红黑树
红黑树是一种特化的平衡二叉树。
特征如下:
- 根节点一定是黑色的
- 所有的叶子节点一定是黑色的
- 红黑交替出现(所有的红色的两个子节点都是黑色的)
- 从任一节点到某一个叶子的所有路径包含相同数量的黑色节点
从上面这些特征能得出下面这样的性质:
从根到叶子的最长可能路径不多于最短的可能路径的两倍长,(这样有效保证了树的大致是平衡的)
保证红黑树平衡的方法是==变色和树的旋转
红黑树如图