B-树和B+树的区别

B-树内部节点是保存数据的;而B+树内部节点是不保存数据的,只作索引作用,它的叶子节点才保存数据。

B+树相邻的叶子节点之间是通过链表指针连起来的,B-树却不是。

查找过程中,B-树在找到具体的数值以后就结束,而B+树则需要通过索引找到叶子结点中的数据才结束

B-树中任何一个关键字出现且只出现在一个结点中,而B+树可以出现多次。

树的种类

 

按照有序性,可以分为有序树和无序树:

无序树:树中任意节点的子结点之间没有顺序关系

有序树:树中任意节点的子结点之间有顺序关系

按照节点包含子树个数,可以分为B树和二叉树,二叉树可以分为以下几种:

二叉树:每个节点最多含有两个子树的树称为二叉树;

二叉查找树:首先它是一颗二叉树,若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树;

满二叉树:叶节点除外的所有节点均含有两个子树的树被称为满二叉树;

完全二叉树:如果一颗二叉树除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布

霍夫曼树:带权路径最短的二叉树。

红黑树:红黑树是一颗特殊的二叉查找树,每个节点都是黑色或者红色,根节点、叶子节点是黑色。如果一个节点是红色的,则它的子节点必须是黑色的。

平衡二叉树(AVL):一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

 

B-树,也称为B树,是一种平衡的多叉树(可以对比一下平衡二叉查找树),

它比较适用于对外查找。看下这几个概念哈:

阶数:一个节点最多有多少个孩子节点。(一般用字母m表示)关键字:节点上的数值就是关键字度:一个节点拥有的子节点的数量。

一颗m阶的B-树,有以下特征:

根结点至少有两个子女;每个非根节点所包含的关键字个数 j 满足:m/2 - 1 <= j <= m - 1.(表示向上取整)有k个关键字(关键字按递增次序排列)的非叶结点恰好有k+1个孩子。所有的叶子结点都位于同一层。

一棵简单的B-树如下:

 

B+树是B-树的变体,也是一颗多路搜索树。

一棵m阶的B+树主要有这些特点:

每个结点至多有m个子女;非根节点关键值个数范围:m/2 <= k <= m-1相邻叶子节点是通过指针连起来的,并且是关键字大小排序的。

一颗3阶的B+树如下:

posted @   huigui_mint  阅读(357)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示