首先列出推导涉及的有:
叶子结点数N,非叶子结点数I,结点总数T,边的总数E
方法一:
1.首先可知 结点总数=叶子结点数+非叶子结点数。即T=N+I。
2.关于边的总数,由于哈夫曼树只有度为2的结点和度为0的结点(即叶子结点),一个度为2的结点有两条边(分别连着左孩子和右孩子),一个度为0的结点(即叶子结点)没有边(因为其没有孩子),即:E=2I。
3.关于边与总结点数的关系,这里可看作所有除了根结点的结点都有一条与其父结点相连的边。即:E=T-1。
4.将T=N+I 与 E=2I 代入 E=T-1。
得:2I=N+I-1
整理得:I=N-1
5.将I=N-1代入T=N+I 得:T=N+N-1=2N-1
方法二:
使用性质:任意一棵二叉树中,若叶结点的数量为n0,度为2的结点的数量为n2,则n0=n2+1。
现在n0=N,则n2=T-N,将此式代入n0=n2+1中。
得:N=T-N+1
故有T=2N-1