设一组权值集合 W=(15 , 3 , 14 , 2 , 6 , 9 , 16 , 17) ,要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )
计算方法:
①先对集合中的结点按照权值从小到大排序。
②选两个权值最小的点将它们的权值相加构成一个新结点,原来的这两个最小的值是新结点的左右子结点。
③在有序集合中将两个被加过的结点去掉,再新的结点放入再次排序然后重复过程②。
④直到完全生成一棵树。
⑤计算的时候,只计算那些初始权值里面有的值,把它乘以深度(和传统说的深度不一样,是传统说的深度减一)加起来就是路径长度。
![](https://img-blog.csdnimg.cn/20190904130656895.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pveWVpc2hhcHB5,size_16,color_FFFFFF,t_70)