B树和二叉树有什么区别?

作者&投稿:佐彼 (若有异议请与网页底部的电邮联系)
B树和二叉排序树,B树和B+树的区别~

一、B树的起源

B树,最早是由德国计算机科学家Rudolf Bayer等人于1972年在论文 《Organization and Maintenance of Large Ordered Indexes》提出的,不过我去看了看原文,发现作者也没有解释为什么就叫B-trees了,所以把B树的B,简单地解释为Balanced或者Binary都不是特别严谨,也许作者就是取其名字Bayer的首字母命名的也说不定啊……

二、B树长啥样

还是直接看图比较清楚,图中所示,B树事实上是一种平衡的多叉查找树,也就是说最多可以开m个叉(m>=2),我们称之为m阶b树,为了体现本博客的良心之处,不同于其他地方都能看到2阶B树,这里特意画了一棵5阶B树 。

总的来说,m阶B树满足以下条件:
每个节点至多可以拥有m棵子树
根节点,只有至少有2个节点(要么极端情况,就是一棵树就一个根节点,单细胞生物,即是根,也是叶,也是树)
非根非叶的节点至少有的Ceil(m/2)个子树(Ceil表示向上取整,图中5阶B树,每个节点至少有3个子树,也就是至少有3个叉)
非叶节点中的信息包括[n,A0,K1,A1,K2,A2,…,Kn,An],,其中n表示该节点中保存的关键字个数,K为关键字且Ki<Ki+1,A为指向子树根节点的指针
从根到叶子的每一条路径都有相同的长度,也就是说,叶子节在相同的层,并且这些节点不带信息,实际上这些节点就表示找不到指定的值,也就是指向这些节点的指针为空
B树的查询过程和二叉排序树比较类似,从根节点依次比较每个结点,因为每个节点中的关键字和左右子树都是有序的,所以只要比较节点中的关键字,或者沿着指针就能很快地找到指定的关键字,如果查找失败,则会返回叶子节点,即空指针
例如查询图中字母表中的K
从根节点P开始,K的位置在P之前,进入左侧指针
左子树中,依次比较C、F、J、M,发现K在J和M之间
沿着J和M之间的指针,继续访问子树,并依次进行比较,发现第一个关键字K即为指定查找的值
三、Plus版——B+树
作为B树的加强版,B+树与B树的差异在于:
有n棵子树的节点含有n个关键字(也有认为是n-1个关键字)
所有的叶子节点包含了全部的关键字,及指向含这些关键字记录的指针,且叶子节点本身根据关键字自小而大顺序连接
非叶子节点可以看成索引部分,节点中仅含有其子树(根节点)中的最大(或最小)关键字

请点击输入图片描述
B+树的查找过程,与B树类似,只不过查找时,如果在非叶子节点上的关键字等于给定值,并不终止,而是继续沿着指针直到叶子节点位置。因此在B+树,不管查找成功与否,每次查找都是走了一条从根到叶子节点的路径

二叉树是指一个树的父节点最多只有两个子节点构成的树,树是不限制子节点的个数的。
二叉树是树的一种特例,是树的子集。
三个节点是无法表示出二叉树和树的区别的,需要三个以上的节点。
二叉树的表示如下图。

树的表示如下图。

扩展资料树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。
相关术语
节点的度:一个节点含有的子树的个数称为该节点的度;
叶节点或终端节点:度为0的节点称为叶节点;
非终端节点或分支节点:度不为0的节点;
双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;
孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;
兄弟节点:具有相同父节点的节点互称为兄弟节点;
树的度:一棵树中,最大的节点的度称为树的度;
节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
树的高度或深度:树中节点的最大层次;
堂兄弟节点:双亲在同一层的节点互为堂兄弟;
节点的祖先:从根到该节点所经分支上的所有节点;
子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
森林:由m(m>=0)棵互不相交的树的集合称为森林;
参考资料百度百科-树(数据结构)

B树是多叉树,二叉树是二叉树。

具体看网页链接



你好!
名字不同。
如有疑问,请追问。

名字不同。


树与二叉树
1.树是n(n 0)个节点的有限集合T,其满足两个条件:2.示例 3.一个树下面有很多子树,即树中有树,有一种 递归 的味道 1.二叉树是n(n 0)个节点的有限集合,它或者是空集(n=0),或者是由一个根节点以及两棵互不相交的,分别称为左子树和右子树的二叉树组成.二叉树与普通树不同,二叉树严格...

16.二叉树和树之间有何区别?一棵度为2的树与二叉树有何区别?
度为 2 的树要求每个节点最多只能有两棵子树,并且至少有一个节点有两棵子树。二叉树的要求是度不超过 2,就是说度也可以是 1 或者 0。二叉树还有一个重要特点,是左子树和右子树不一样;普通的树不分左右子树。

树和二叉树
二叉树的 特点 :二叉树和树的比较:完全二叉树 :深度为 k 的二叉树中,k-1 层结点数是满的 ,k 层结点是左连续的(即结点编号是连续的)。满二叉树 :深度为 k(k>=1) 且有 个结点的二叉树。满二叉树是完全二叉树的特例。在二叉树的第 i(i>=1) 上至多有 个结点;深度为...

树与二叉树及其基本性质
②每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。由以上特点可以看出,在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。另外,二叉树中的每个结点的子树被明显地分为左子    树和...

一棵度为2的树与一棵二叉树有何区别?
1、度不同 度为2的树要求每个节点最多只能有两棵子树,并且至少有一个节点有两棵子树。二叉树的要求是度不超过2,节点最多有两个叉,可以是1或者0。在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。2、分支不同 度为2的树有两个分支,但分支没有左右之分;一棵...

16.二叉树和树之间有何区别?一棵度为2的树与二叉树有何区别?
二叉树只有两个分支,树可以有多个分支。树包括二叉树

二叉树与数有什么区别?
二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)空二叉树——(a);(2)只有一个根结点的二叉树——(b);(3)右子树为空的二叉树——(c);(4)左子树为空的二叉树——(d);(5)完全二叉树——(e)注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊...

什么是树与二叉树?
树是树形结构的简称,是一种非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树是每个节点最多有两个子树的有序树。

+20 c语言- (求)树,二叉树,二叉查找树区别和用他们做的C语言简单编成...
二叉树是指结点的度最大为2,也就是一个结点最多只有两个分支。二叉树与度为2的树的区别是二叉树是顺序树,即有严格的左右之分,而度为2的树却没有这种要求。二叉排序树是在二叉树的基础上面将小于结点的分支都放在该结点的左边,而大于该结点的分支都放在右边的树,这样很便于查找。我只给你写...

小白科普丨何为树、二叉树和森林?
深入探索:树、二叉树与森林的奥秘 让我们一起解开树、二叉树和森林的神秘面纱,理解它们的构造和转换规则。这些数据结构在计算机科学中起着关键作用,无论是数据存储还是算法设计,它们都是不可或缺的基石。树的基础概念树,这个概念简单而强大,是n(n≥0)个节点的有序集合。当n=0时,我们称之为...

望奎县17148849693: 什么是B+树索引? -
希尝鼻渊: B+树是一种树数据结构,常见于数据库与档案系统之中.B+树能够使资料保持有序,并拥有均匀的对数处理时间的插入和删除动作.B树的元素通常会自底向上插入,有别于多数自顶向下插入的二叉树.B+ 树在节点访问时间远远超过节点内部...

望奎县17148849693: oracle的B树索引到底是不是基于二叉树 -
希尝鼻渊: B-Tree索引是最常见的索引结构,默认创建的索引就是B-Tree索引.一、B树索引的结构B-树索引是基于二叉树结构的.B-树索引结构有3个基本组成部分:根节点、分支节点和叶子节点.其中根节点位于索引结构的最顶端,而叶子节点位于...

望奎县17148849693: b+树为什么不是树 -
希尝鼻渊: 当然是树了,只是多了一层修饰语,是一种多路搜索树 只是说不是二叉树

望奎县17148849693: 树和二叉树的基本知识? -
希尝鼻渊: 二叉树在计算机科学中,二叉树是每个结点最多有两个子树的有序树.通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常被用作二叉查找树和二叉堆.二叉树的每个结点至多只有二棵子树(不存在度大于2的结...

望奎县17148849693: 什么是二叉树 -
希尝鼻渊: 平衡二叉树(Balanced Binary Tree)又被称为AVL树(区别于AVL算法,且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树.构造与调整方法平衡二叉树的常用算法有红...

望奎县17148849693: B树在信息学竞赛中的作用是什么呀?较之于treap和红黑树有什么优势吗? -
希尝鼻渊: 用处不大.B树为多分支,即多叉,在磁盘读取技术中用处很大,但OI中一般使用二叉树更方便,效率也相差不大.

望奎县17148849693: 举例说明oracle数据库中B树索引的基本组织结构 -
希尝鼻渊: B树即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键...

望奎县17148849693: 在数据结构中什么是二叉树?什么是树?二者有什么区别么? -
希尝鼻渊: 树是只有一个根结点的n个结点的有限集,二叉树是度为二的树

望奎县17148849693: 数据结构中树与二叉树的区别在于? -
希尝鼻渊: 二叉树是树的一种,开可以有三叉树、四叉树、……,以及混合叉树.不过一般只讨论二叉树,这是最典型、最有用的数据结构.

望奎县17148849693: 树与二叉树的区别?为何要将一般树转化成二叉树 -
希尝鼻渊: 满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,.(这个似乎很好想像出来)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;(这个,就说从满二叉树里,最下一层的叶子,如果是从右往左拿掉叶子,不论多少,都是完全的,如果不是从右往左拿,而是在中间拿掉了一个,就是不完全的)为何要将一般树转化成二叉树? 是因为二叉树具有树不具备的一些特性,而且二叉树容易操作些吧.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网