如何构造哈夫曼树 1.什么是哈夫曼树 设有n个权值{w1,w2,w3,…,wn},构造有n个叶子结点的二叉树,每个叶子结点带权为wi,则其中带权路径长度最小的二叉树称为赫夫曼树或最优二叉树。 哈夫曼树又称最优二叉树。 2.哈夫曼树的用处举例 【举例一】有效减少比较次数
设有 10000 个数据, 左边的数据组织形式需要进行 31500 次比较;而右边的树进行 22000 次比较。 【举例二】有效减少存储空间 哈夫曼编码:保证编码在能够识别的前提下,传递最少的字符。
3.构造一棵哈夫曼树的思路 (1)根据给定的n个权值{w1,w2,w3,…,wn}构成n棵二叉树的集合F={T1,T2,T3,…,Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树均为空. (2)在集合F中选取两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,新二叉树的根结点的权值为其左右子树上根结点的权值之和. (3)在集合F中删除这两棵树,同时将新得到的二叉树加入F中. (4)重复步骤(2)、(3),直到F中只含一棵树为止,这棵树就是一棵赫夫曼树. 【举例】给定权值{ 5, 6, 2, 9, 7 },构造一棵哈夫曼树
4.哈夫曼编码实现代码
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/41372.html