经验总结:
1.对于求解带权路径长度最值的问题可以联想到哈弗曼树。
2.不管是几叉树,都可以联想到二叉树,很多性质都可以从二叉树中推广得到。
假定虚位表示权值为0的结点。
有以下推论:
m表示节点个数,n表示n叉树,
若k =(m-1)%(n-1) = 0,说明不需要虚位,否则需要(n-1)-(m-1)%(n-1)个虚位。
题目:
已知三叉树T 中 6 个叶结点的权分别是 2,3,4,5,6,7, T 的带权(外部)路径长度最小是()
a.27 b.46 c.54 d.56
分析:
根据以上推论,代入数据:m = 6, n = 3
k = (6-1) % (3-1) = 5 % 2 = 1,说明需要1个权值为0的结点。
要使带权路径长度最小,则要将权值大的离根节点近,即尽量将权值大的结点放在上层。
则可以根据权值大小构造该树,如下所示:
从上图中,可以求得最短路径长度为:
1*(6+7)+2*(4+5)+3*(2+3) = 13+18+15=46,所以答案选B。