b树你知道吗?对于对计算机不是非常熟悉的人来说,可能都没听说过,下面让我一起来了解一下什么是b树及它和二叉树有什么联系吧。
一、什么是b树?
B树是一种平衡多叉树,一般适用于外查找,它也可以看作是对2-3查找树的一种扩展,即它允许每个节点有M-1个子节点。
B树特点
1.根节点至少有两个子节点
2.每个节点有M-1个key,并且以升序排列
3.位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间
4.其它节点至少有M/2个子节点
2-3树
2-3树是一种最简单的b树结构,它的每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,它的节点可以拥有3个孩子。2-3树与满二叉树相似。若某棵2-3树不包含3-节点,则看上去像满二叉树,其所有内部节点都可有两个孩子,所有的叶子都在同一级别。另一方面,2-3树的一个内部节点确实有3个孩子,故比相同高度的满二叉树的节点更多。高为h的2-3树包含的节点数大于等于高度为h的满二叉树的节点数,即至少有2^h-1个节点。换一个角度分析,包含n的节点的2-3树的高度不大于[log2(n+1)](即包含n个节点的二叉树的最小高度)。
如:下图显示高度为3的2-3树。包含了两个孩子的节点称为2-节点,再二叉树中的节点都是2-节点;包含三个孩子的节点称为3-节点。
数据项放入2-3树节点中的规则是:
(1)2-节点有两个孩子,必含一个数据项,其查找关键字大于左孩子的查找关键字,而小于右孩子的查找关键字。
(2)3-节点有三个孩子 ,必含两个数据项,其查找关键字S和L满足下列关系:S大于左孩子的查找关键字,而小于中孩子的查找关键字;L大于中孩子的查找关键字,而小于右孩子的查找关键字。
(3)叶子可以包含一个或两个数据项。
B树因为其分支结点同样存储着数据,所以我们如果要找到具体的数据,就要进行一次中序遍历按序来扫。
二、b树是二叉树吗?
不是,二叉树是一种各个节点至多只有两个子树的树结构。它的子树一般被称作“左子树”和“右子树”,左子树和右子树同时也是二叉树。二叉树子树有着左右之分,且它的顺序不能随意颠倒。所以,b树不是二叉树,它是一种适用于外查找的树,它是平衡多叉树。
以上就是关于b树是不是二叉树的所有内容啦,更多相关java常见问答知识,请持续关注我们来了解吧。
推荐阅读: