数据结构满二叉树完全二叉树?把分拿来吧你

Posted 强连通计算机考研

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构满二叉树完全二叉树?把分拿来吧你相关的知识,希望对你有一定的参考价值。


【数据结构】满二叉树、完全二叉树?把分拿来吧你

强哥,上周关于树的四个性质的讲解从例题出发,印象还蛮深刻。

那就好呀,我们会再接再厉哈。

【数据结构】满二叉树、完全二叉树?把分拿来吧你
【数据结构】满二叉树、完全二叉树?把分拿来吧你

本周分享什么呢,强哥?

那必然是我们的重头戏---二叉树。

【数据结构】满二叉树、完全二叉树?把分拿来吧你

哈喽,大家好,上两周给大家分享了一些关于树的基础知识,不知道大家掌握的怎么样呢?如果有好的意见,也欢迎指出哦。


本周我们来了解了解二叉树。首先我们来看看树的分类吧~除开我们之前所讲的有序树与无序树,来看看还有哪些分类?



树的分类

对于树的类型,网上有很多关于它的介绍,但感觉都比较乱,所以我们可以先选择最直观的方式,以貌取“树”,从外观上将它分为两类,二叉树与多叉树。顾名思义:二叉树:就是有且仅有两个分叉的树,而多叉树当然是有很多分叉的树。其中二叉树在树这种数据结构更为常用,所以我们需要了解更多的也是二叉树,在此,这里为大家列举了一部分二叉树与多叉树的代表树。


二叉树:线索化二叉树,二叉排序树,平衡二叉树,赫夫曼树,红黑树


多叉树:B-树、B+树、后缀树、广义后缀树。


树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个结点最多有两个子结点,一般称为左子结点和右子结点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒,二叉树也是属于有序树。


二叉树是由n(n>=0)个结点组成的有序集合,集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。


二叉树的五种形态:

【数据结构】满二叉树、完全二叉树?把分拿来吧你

这里再提一点:二叉树与度为2的有序树的区别:


度为2的有序树至少有三个结点,而二叉树可以时空二叉树;并且一棵度为二的有序树与一棵二叉树的另外一个重要区别在于:有序树的结点次序是相对于另一结点而言的,如果有序树中的子树只有一个孩子时,这个孩子结点就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言而是确定的。


接下来呢,还是从外观出发,目前我们还不走进它们的内心特质,还是以貌取“树”,可以找出两种特殊的二叉树:满二叉树和完全二叉树。


满二叉树:如果二叉树中所有分支结点的度数都为2,并且叶子结点都在统一层次上,则二叉树为满二叉树。如下图:

【数据结构】满二叉树、完全二叉树?把分拿来吧你

完全二叉树:若二叉树中最多只有最下面两层的结点的度数可以小于2,并且最下面一层的叶子结点都是依次排列在该层最左边的位置上,则称为完全二叉树。


或者从我们图中的编号来看:如果一棵具有n个结点的高度为k的二叉树,树的每个结点都与高度为k的满二叉树中编号为1---n的结点一一对应,则二叉树为完全二叉树。

【数据结构】满二叉树、完全二叉树?把分拿来吧你

满二叉树与完全二叉树的区别就在于“满”字:满二叉树是完全二叉树的特例,因为满二叉树已经满了,而完全并不代表满。满指的是出了叶子节点外每个节点都有两个孩子,而完全的含义则是最后一层没有满,并没有满。


完全二叉树的特性:

A、同样结点数的二叉树,完全二叉树的高度最小

B、完全二叉树的叶子结点仅出现在最下边两层,并且最底层的叶子结点一定出现在左边,倒数第二层的叶子结点一定出现在右边。

C、完全二叉树中度为1的结点只有左孩子。


它们两者的判断标准都是我们从外观直接给定的。当我们从图中给出的编号继续探究时,可以发现:


(1)如果一棵有n个结点的完全二叉树的结点按层序编号(也就是上图中所示),则对任一结点i(i<= i <=n),有:


如果i == 1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲结点为i/2的向下取整的值,比如i = 5,则双亲结点为5/2 = 2;


如果2i > n,则结点i为叶子结点,无左孩子;否则,其左孩子是结点2i;


如果2i + 1 > n,则结点i无右孩子;否则,其右孩子是结点2i +1;


并且:(2)具有n个结点的完全二叉树的深度为不大于log2n的最大整数+1即:


深度 k = 不大于log2n的最大整数+1。这里的2就与我们的分支数有关。


最后:(3)任何一棵完全二叉树中度为1的结点要么有1个,要么就没有度为1的结点。因为完全二叉树的最后一层的结点必须是从左到右连续的,而位于最后一层之前的层数的结点的度均为2。

【数据结构】满二叉树、完全二叉树?把分拿来吧你

没有度为1的结点

【数据结构】满二叉树、完全二叉树?把分拿来吧你

有1个度为1的结点



思维导图

【数据结构】满二叉树、完全二叉树?把分拿来吧你



今天的分享就到这里吧!加油,加油

以上是关于数据结构满二叉树完全二叉树?把分拿来吧你的主要内容,如果未能解决你的问题,请参考以下文章

完全二叉树 满二叉树

二叉树进阶之满二叉树和完全二叉树

如何判断二叉树是满二叉树?

二叉树满二叉树完全二叉树

完全二叉树和满二叉树的区别

二叉树满二叉树完全二叉树