假设初始森林中共有n棵二叉树,每棵树中都仅有一个孤立的结点。将该森林构造成哈夫曼树,则最终求得的哈夫曼树的结点数为()

假设初始森林中共有n棵二叉树,每棵树中都仅有一个孤立的结点。将该森林构造成哈夫曼树,则最终求得的哈夫曼树的结点数为()


A、

n-1


B、

n


C、

2n-1


D、

2n


【正确答案】:C
【题目解析】:

哈夫曼算法是将当前森林中的两棵根结点权值最小的二叉树合并成一棵新的二叉树,合并一次,森林中就减少一棵树,显然要进行n-1次合并才能使森林中的二叉树的数目由n棵减少到只剩下一棵最终的哈夫曼树,并且每次合并都要产生一个新结点。合并n-1次共产生n-1个新结点。

由此可知:n个叶结点是初始森林中的n个结点,并且哈夫曼树中没有度数为1的分支结点,故最终求得的哈夫曼树中共有n-1+n=2n-1个结点。


Top