二叉树,完全二叉树,满二叉树,平衡二叉树的区别

度:指的是一个节点拥有子节点的个数。如二叉树的节点的最大度为2。

深度:数的层数,根节点为第一层,依次类推。

叶子节点:度为0的节点,即没有子节点的节点。

树:树中的每一个节点,可以有n(后续节点)个子节点,但是每个节点只有一个前驱节点。

二叉树:除了叶子节点外,每个节点只有两个分支,左子树和右子树,每个节点的最大度数为2.

满二叉树:除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树,

《二叉树,完全二叉树,满二叉树,平衡二叉树的区别》

 

完全二叉树:只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。

也就是说,在满叉树的基础上,我在最底层从右往左删去若干节点,得到的都是完全二叉树。

所以说,满二叉树一定是完全二叉树,但是完全二叉树不一定是满二叉树

《二叉树,完全二叉树,满二叉树,平衡二叉树的区别》

平衡二叉树:树的左右子树的高度差不超过1的数,空树也是平衡二叉树的一种。

 

平衡二叉树,又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度之差之差的绝对值不超过1.。

常用算法有:红黑树AVL树、Treap等。

平衡二叉树的调整方法

平衡二叉树是在构造二叉排序树的过程中,每当插入一个新结点时,首先检查是否因插入新结点而破坏了二叉排序树的平衡性,若是,则找出其中的最小不平衡子树,在保持二叉排序树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。

 

 

 

哈夫曼树:带权路径长度达到最小的二叉树,也叫做最优二叉树。

不关心树的结构,只要求带权值的路径达到最小值,哈夫曼树可能是完全二叉树也可能是满二叉树。

二叉树的性质:

(1) 在二叉树中,第i层的结点总数不超过2^(i-1);

(2) 深度为h的二叉树最多有2^h-1个结点(h>=1),最少有h个结点;

(3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,

则N0=N2+1;

(4) 具有n个结点的完全二叉树的深度为int(log2n)+1

(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:

若I为结点编号则 如果I<>1,则其父结点的编号为I/2;

如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;

如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。

(6)给定N个节点,能构成h(N)种不同的二叉树。

h(N)为卡特兰数的第N项。h(n)=C(n,2*n)/(n+1)。

    原文作者:满二叉树
    原文地址: https://blog.csdn.net/Beyond_2016/article/details/81198886
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞