哈夫曼树的度

今天做王道题遇见一个:
若度为m的赫夫曼树中,叶子节点个数为n,则非叶子节点的个数为(C)
A:n-1 B:⌊n/m⌋-1 C:⌈(n-1)/(m-1)⌉ D:⌈n/(m-1)⌉-1

最开始看见这题有个疑惑,根据书上的解释,赫夫曼树就是二叉树,其结点的度只有0和2两种,何来度为m一说,在查阅资料过后才知道赫夫曼除了二叉树,还有多叉树。
对于度为m的赫夫曼树,有这样一个特点,其结点的度只有0与m两种。
这种度为m的赫夫曼树的构造参照度为2的赫夫曼树,将权值最小的m个结点放在一起(第一次合并可能少于m个),有一个共同的父节点,这个父节点的权值是这m个结点的权值之和,然后再将这个父结点的权值与剩余的结点的权值进行比较,以此类推,直到所有的结点都加进树中。
再回到这一题,对于赫夫曼树,在构造时,每进行一次比较合并,就会多一个非叶子结点,同时减少m-1个结点,所以对于n个结点,可以进行⌈(n-1)/(m-1)⌉次比较(其中还有剩余的一个父结点),所以就多出⌈(n-1)/(m-1)⌉个非叶子结点

你可能感兴趣的:(笔记)