博客
关于我
Java基础题:哈夫曼树
阅读量:373 次
发布时间:2019-03-05

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

树的带权路径长度(WPL)是衡量一棵树的总权重的重要指标。它等于每个节点的带权路径长度之和。每个节点的带权路径长度计算方式为:当前节点的权重乘以从当前节点到根节点所经过的“边”数。

为了构造一棵带权路径最小的树(哈夫曼树),我们需要按照以下步骤进行:

  • 将所有节点按照从小到大排序,形成一个队列:2, 3, 6, 8。
  • 重复以下步骤直到队列为空:
    • 取出队列中两个最小的节点,构造一颗子树,将它们的和作为父节点,并将父节点放回队列中。
    • 确保右边的子树值大于左边的子树值。
  • 当队列为空时,去掉所有辅助节点,得到一颗哈夫曼树。
  • 通过上述方法,我们最终构造出一棵哈夫曼树。为了计算带权路径长度(WPL),我们需要:

    • 2 * 3(从2到根节点经过1条边)
    • 3 * 3(从3到根节点经过2条边)
    • 6 * 2(从6到根节点经过3条边)
    • 8 * 1(从8到根节点经过4条边)

    将这些值相加,得到WPL = 23 + 33 + 62 + 81 = 35。

    最终,优化后的哈夫曼树结构如下:

    • 根节点为3,左子树为2,右子树为6。
    • 6的左子树为3,右子树为8。
    • 3的左边没有子树,右边没有子树。

    转载地址:http://xknwz.baihongyu.com/

    你可能感兴趣的文章
    Python刷题输入输出
    查看>>
    冒泡排序又来啦(C/C++版本)
    查看>>
    python负数存储
    查看>>
    求二维数组中最大值的位置
    查看>>
    python中sort和sorted的区别
    查看>>
    vue中echart数据动态切换,一看就懂
    查看>>
    Python3.6爬虫记录
    查看>>
    搞清楚Spring Cloud架构原理的这4个点,轻松应对面试
    查看>>
    1月份2月份GitHub上最热门的23个Java开源项目
    查看>>
    maven安装
    查看>>
    2020第十五届全国大学生智能汽车竞赛——4X4矩阵键盘+Flash调参系统
    查看>>
    合并两个有序数组
    查看>>
    Ubuntu 环境下使用中文输入法
    查看>>
    小白学习Vue(?)--model选项的使用(自定义组件文本框双向绑定)
    查看>>
    聊聊我的五一小假期
    查看>>
    面向对象之异常处理:多路捕获
    查看>>
    Python简易五子棋
    查看>>
    MySQL8.0.19 JDBC下载与使用
    查看>>
    Vue新建项目——页面初始化
    查看>>
    Cent OS 7.6 服务器软件安装(这篇博客主要是为了方便我配置云主机的)
    查看>>