Java基础题:哈夫曼树
发布日期:2021-05-08 06:39:09 浏览次数:12 分类:精选文章

本文共 304 字,大约阅读时间需要 1 分钟。

在这里插入图片描述

树的带权路径长度(WPL)等于每个节点的带权路径长度。

每个节点的带权路径长度计算:

当前节点的权重(节点的值)*从当前节点到根节点所经过的“边”数。

首先要构造一个带权路径最小的树(哈夫曼树):

先将上列节点按从小到大排序成一个队列, 2, 3, 6, 8

  • 取最小的两个节点构造一颗子树,将其和作为父节点,并加入到队列中(从小到大排序)。
  • 重复上次操作(右边的子树值要大于左边的子树值)。
  • 队列为空后,去掉添加的辅助节点,即得到一颗哈夫曼树。

在这里插入图片描述

最后形成一颗哈夫曼树:
在这里插入图片描述
去掉辅助节点(红色节点),然后就可计算带权路径和(树的带权路径长度WPL): 2*3 + 3*3 + 6*2 + 8*1 = 35
链接:

上一篇:Java基础题:递归相关知识
下一篇:Java基础题:二叉树相关计算

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月10日 12时07分26秒