网站推广.NET

网站推广.NET

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

来源:互联网

满二叉树和完全二叉树的区别:1、含义不同;2、表示不同;3、节点性质不同;4、深度计算公式不同。其中,含义不同指深度为k且有2^k-1个结点的二叉树称为满二叉树,而完全二叉树的深度为h,除第h层,其它各层 (1~h-1) 的结点都达到最大个数,第h层所有的结点都连续集中在最左边。

1、含义不同

满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树。

完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边。

2、表示不同

满二叉树:对于满二叉树,除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。而完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。

完全二叉树:对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

3、节点性质不同

满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。一个层数为k 的满二叉树总结点数为:(2^k)-1。因此满二叉树的结点树一定是奇数个;第i层上的结点数为:2^(i-1);一个层数为k的满二叉树的叶子结点个数(也就是最后一层):2^(k-1)。

完全二叉树:只允许最后一层有空缺结点且空缺在右边,即叶子结点只能在层次最大的两层上出现;对任一结点,如果其右子树的深度为j,则其左子树的深度必为j或j+1,即度为1的点只有1个或0个。

4、深度计算公式不同

满二叉树:满二叉树的深度为k=log2(n+1)。

完全二叉树:在完全二叉树中,具有n个结点的完全二叉树深度为(log2n)+1,其中(log2n)+1是向下取整。

拓展阅读

判断一棵树是否是完全二叉树的思路

如果树为空,则直接返回错;如果树不为空:层序遍历二叉树;如果一个结点左右孩子都不为空,则pop该节点,将其左右孩子入队列;如果遇到一个结点,左孩子为空,右孩子不为空,则该树一定不是完全二叉树;如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空,且则该节点之后的队列中的结点都为叶子节点,该树才是完全二叉树,否则就不是完全二叉树。
满二叉树和完全二叉树的区别