目录
(3)具有n个结点的m叉树的最小高度为logm[n*(m-1)+1]
树的基本概念
节点的度:
子树的个数
树的度:
所有节点度中的最大值
叶子节点:
度为0的节点
非叶子节点:
度不为0的节点
层数:
根节点在第一层,根节点的子节点在第2层,以此类推
节点的深度:
从根节点到当前节点的唯一路径上的节点总数
节点的高度:
当前节点到最远叶子节点的路径上的节点总数
一棵树可以没有任何节点,称为空树
一棵树可以只有一个节点,也就是只有根节点
有序树
树中任意节点的子节点之间有顺序关系
无序树
树中任意节点的子节点之间没有顺序关系,也称为自由树
森林
由n(n >= 0) 棵互不相交的树组成的集合
二叉树的特点
每个节点的度最大为2(做多拥有2棵子树)
左子树和右子树是有顺序的(也就是说二叉树是有序的)
即使某节点只有一颗子树,也要区分左右子树
二叉树的性质
非空二叉树的第i层,最多有2^(i-1)个节点(i >= 1)
在高度为h的二叉树最多有2^(h-1)个节点(h >= 1)
满二叉树(特殊的完全二叉树)
满二叉树:
最后一层节点的度都为0,其他节点的度都为2
在同样高度的二叉树中,满二叉树的叶子节点数量最多、总节点数量最多
满二叉树一定是真二叉树,真二叉树不一定是满二叉树
完全二叉树
完全二叉树:对节点从上至下、左至右开始编号,其所有编号都能与相同高度的满二叉树中编号对应
完全二叉树的性质:
叶子节点只会出现最后2层,最后1层的叶子节点都靠左对齐
完全二叉树从根节点至倒数第2层是一棵满二叉树
满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树
度为1的节点只有左子树
度为1 的节点要么是1个,要么是0个
同样节点数量的二叉树,完全二叉树的高度最小
完全二叉树中父亲节点与孩子节点编号的关系(编号从0开始):
leftchild = 2 * parent + 1;
rightchild2 = 2 * parent + 2;
结点数、度数、高度之间的关系
结点度:一个结点的孩子个数
树的度:树中结点中最大的度数
叶子结点:没有孩子,度数为0的结点
根节点所在层数为1层
设结点度数为0、1、2、~~的结点个数分别为n0,n1,n2,~~
总结点数:n
(1)n=总度数和(分支数)+1=n0+n1+n2+~~
总度数和+1:
除根节点外,每个结点都是一个分支,分支数=总度数和,故总结点个数=总度数和(分支数)+1
n0+n1+n2+~~:
n0为叶子结点个数,各级结点个数之和=总结点个数
(2)度数为m的树上第i层最多有m^(i-1)个结点
第1层只有一个根节点,第2层最多m个结点,第3层最大m^2个结点,第i层最多m^(i-1)个结点
高度为H的m叉树最多有(mH-1)/(m-1)个结点
可将m叉树看作一个等比数列1,m,m2,m3,~~,mH
等比数列公式:a1*(1-qn)/(1-q)=(a1-an*q)/1-q
总结点个数:(mH-1)/(m-1)
(3)具有n个结点的m叉树的最小高度为logm[n*(m-1)+1]
将除根节点外的每一层都填充满,即上一性质的逆推:logm[n*(m-1)+1]
(4) 具有n个结点的m叉树的最大高度为n-m+1
除最后一层放置m个结点外,每一层都只放置一个结点,剩余n-m个结点,即n-m层,最大高度为n-m+1
结尾:谢谢大噶观看!!