![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
麦嘟学编程
这个作者很懒,什么都没留下…
展开
-
如何构建一棵哈夫曼树
给一个数列{10,7,8,3,26,5,1},要求转成为一棵哈夫曼树。 分析思路以及图解: 第一步:将数列进行排序,按从小到大的顺序。最终结果为{1,3,5,7,8,10,26},根据每个数值创建结点,组成结点数组 第二步:取出权值最小的两个结点构成一棵二叉树。 第三步:然后将结点数列中的1,3结点移除,添加新的结点4进入,重新排序,得到以下结点顺序: 第四步:重复操作第二步和第三步: ...原创 2021-01-29 10:00:04 · 3643 阅读 · 0 评论 -
什么是哈夫曼树
定义: 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。 哈夫曼树是带权路径长度最短的树,权值较大的结点离根近。 相关概念的说明: 路径和路径长度:在一颗树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。 结点的权及带权路径长度:若将树中结点赋给一个有着某...原创 2021-01-29 09:30:23 · 717 阅读 · 0 评论