小白的数据结构与算法学习笔记(二十四)----哈夫曼树的基本介绍

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_41641805/article/details/81836305

一、基本概念

1、结点的路径长度:从根结点到该结点的路径上的连接数

2、树的路径长度:树中每个叶子结点的路径长度之和

3、结点带权路径长度:结点的路径长度与结点权值的乘积

4、树的带权路径长度(WPL:Weighted Path Length):树中所有叶子结点带权路径长度之和,WPL越小,二叉树性能越优

5、最优二叉树:假设有n个权值{w1,w2,w3,······wn},构造一棵有n个叶子结点的二叉树,每个叶子结点带权值为wi,则其中WPL最小的二叉树称为最优二叉树

6、哈夫曼树:就是最优二叉树

二、哈夫曼树的构造过程

1、在森林中选出两棵根结点权值最小的二叉树,小的放左边,大的放右边

2、合并两棵选出的二叉树,增加一个新结点(不是森林中的待选结点!!而是新加的一个原本无权值的结点)作为新二叉树的根,权值为左右孩子权值之和

扫描二维码关注公众号,回复: 3545646 查看本文章

3、再从森林中剩余结点选出权值最小的二叉树,放在新结点左边,重复第2步

4、重复以上3步

三、哈夫曼编码与哈夫曼树的关系

哈夫曼树向左的连接都是0,向右的连接都是1,通过0与1的组合会对应唯一一条哈夫曼树中的路径指向的叶子结点,例如:A对应1011110,B对应1011111

                                                                                                                                                          BY   ZJQ

猜你喜欢

转载自blog.csdn.net/qq_41641805/article/details/81836305