树中的叶子结点的个数计算
例题:
计算方法已知在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶子结点的个数为?
解决这道题的思路是列出一个关于各个度的结点的等式,从而根据已知条件算出度为0的结点的个数,下面具体说一下解题方法:
设树T中的结点个数为n,度为0的结点的个数为n0,度为1的结点的个数为n1,度为2的结点的个数为n2,度为3的结点的个数为n3,度为4的结点的个数为n4,则有:
n = n0 + n1 + n2 + n3 + n4
设树T中的总边数为e,因为除了根节点的入度为0,其余各节点的入度都为1,则有:
e = n - 1 = n0 + n1 + n2 + n3 + n4 - 1
又因为,n0的出度为0,n1的出度为1,n2的出度为2,n3的出度为3,n4的出度为4,所以:
e = n0 * 0 + n1 * 1+ n2 * 2 + n3 * 3 + n4 * 4
综上所述:
e = n0 * 0 + n1 * 1+ n2 * 2 + n3 * 3 + n4 * 4 = n0 + n1 + n2 + n3 + n4 - 1
n0 = n2 + n3 * 2 + n4 * 3 + 1
根据题意,n2 = 1, n3 = 10 ,n4 = 20 ,代入得:
n0 = 82
因此该树T有82个叶子结点
总结
通过上面的解题方法,我们大致可以总结出一个很好用的公式:
d
n0 =( Σ n(i) * (i - 1)) + 1 (其中,i ∈ Integer,d为树的度)
i=1