哈夫曼树构造算法的思路_哈夫曼树的构造算法思想

哈夫曼树构造算法的思路_哈夫曼树的构造算法思想数据结构与算法——哈夫曼树一、哈夫曼树的定义及构造思想哈夫曼树定义:满足WPL最小的二叉树,即最优树WPL(带权路径长度):设二叉树有n个叶结点,每个叶子结点带有权值wk&#xf

数据结构与算法——哈夫曼树
  一、哈夫曼树的定义及构造思想

  哈夫曼树定义:满足WPL最小的二叉树,即最优树

  WPL(带权路径长度):设二叉树有n个叶结点,每个叶子结点带有权值wk,从根结点到每个叶结点长度为lk,则每个叶结点的WPL = ∑wk*lk

  哈夫曼树特点:

  1.没有度为1的结点,要么度为2要么度为0,因为每个结点都是由子结点两两合并而来。

  2.哈夫曼树的任意非叶结点的左右子树交换后仍是哈夫曼树

  3.n个叶结点的哈夫曼树共有2n-1个结点

  简单证明:

  n2——有2个子结点的结点

  n1——有1个子结点的结点

  n0——叶结点

  n2 = n0 – 1

  由于哈夫曼树没有n1,所以总结点数为n2+n0 = n – 1 + n = 2n – 1

  4.对于同一组权值,存在不同的哈夫曼树

  构造思想:每次把权值最小的两棵二叉树合并,合并后树的权值为合并前两棵树权值的和,所以这样子哈夫曼树的结构有点像金字塔,最顶端权值最大。那权值最小如何获得呢?我们可以想到用最小堆可以每次删除得到当前权值的最小值。

  二、哈夫曼树用最小堆实现的代码

  结果:

  在这里插入图片描述

  三、哈夫曼编码:

  跟据哈夫曼树形成的非前缀编码,一个哈夫曼树的叶结点对应一个字符,附一张图:

  在这里插入图片描述

  代码实现:在之前输入的7个叶结点上,对应7个字符

  结果:

  在这里插入图片描述

  链接资源:最小堆实现哈夫曼树的构造及哈夫曼编码、解码

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/95359.html

(0)
上一篇 2024年 5月 25日
下一篇 2024年 5月 25日

相关推荐

  • Goland激活2024.1.2(JetBrains Goland 2024.2 激活成功教程版 – Go语言IDE)

    Goland激活2024.1.2(JetBrains Goland 2024.2 激活成功教程版 – Go语言IDE)

    激活谷笔记 2024年 6月 6日
  • vscodec插件_bracket pair colorizer插件介绍

    vscodec插件_bracket pair colorizer插件介绍洛谷日报:VSCode中那些超棒的功能和插件正如官网所说,VSCode是一个很强的编辑器。来个更震撼的?那么为什么VSCode那么强?有很大的一个原因:功能和插件众多关于VSCode的基操,请看往期日报今天我们来看看VSCode中有哪些超强的功能和插件吧~(注:鉴于大家都是OIer或AC

    2024年 5月 8日
  • printf输出例子_输出printf语句

    printf输出例子_输出printf语句C语言printf() 详解之终极无惑1.printf() 简介printf() 是 C 语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf() 申明于头文件 stdio.h。函数原型&

    2024年 5月 26日
  • html 个人简历_html个人简历模板代码

    html 个人简历_html个人简历模板代码html个人简历的代码1、 vtitle 个人简历 font face二华文琥珀 size=6:个人简历 填表时间: td width二10 align=right年 td width=10 align=right月 td width=10 align=right日 姓名: v/td 文化程度

    激活谷笔记 2024年 5月 29日
  • 存储器的分类与功能有哪些类型_存储器的分类与功能有哪些类型呢

    存储器的分类与功能有哪些类型_存储器的分类与功能有哪些类型呢存储器的分类存储器的分类存储器是计算机的重要组成部分之一,用来存储程序和数据,表征了计算机的“记忆”功能1.按用途分类⑴内部存储器内部存储器又叫内存,是主存储器。用来存储当前正在使用的或经常使用的程序和数据。CPU可以对他直接访问,存取速度较快。⑵

    激活谷笔记 2024年 5月 23日
  • Rider激活2024.1.2(JetBrains 2024.1 全家桶激活教程+激活码+中文设置方法(JetBrains 2024自带AI 神器,全行代码补全))

    Rider激活2024.1.2(JetBrains 2024.1 全家桶激活教程+激活码+中文设置方法(JetBrains 2024自带AI 神器,全行代码补全))

    2024年 6月 6日
  • 维度表示什么意思

    维度表示什么意思维度是什么?这个问题看似很深奥,其实生活中处处可见,我们处处都在利用“维度”也在被“维度” 所困惑,理解思考的维度问题对我们投资有很大的帮助。维度是指:独立的时空坐标的数量,1维是直线,2维是面,3维是体。作为凡人,我们都是眼见为实,三维已经是观察极限,想象四维已经勉为其难。但是我

    激活谷笔记 2024年 5月 18日
  • Rider激活2023.3.5(Jrebel 最新的 2023.4 、 2024.1 激活方法)

    Rider激活2023.3.5(Jrebel 最新的 2023.4 、 2024.1 激活方法)

    激活谷笔记 2024年 6月 7日
  • c语言括号匹配问题_括号匹配问题 栈c++语言

    c语言括号匹配问题_括号匹配问题 栈c++语言【C++题解】括号(括弧)匹配问题综合括号匹配问题可以使用C++链栈来解决。具体实现方法如下:1. 定义一个char型链栈,用于存储左括号。2. 从左到右遍历输入的符号序列,如果遇到左括号,则将其入栈;如果遇到右括号,则判断栈顶元素是否为对应的左括号,如果是,则

    激活谷笔记 2024年 5月 21日
  • chillout和chillstep_Chillout和chillstep区别

    chillout和chillstep_Chillout和chillstep区别如何区分 Chillout 和 New Age?这两种风格的代表制作人分别有哪些?文:ishkur源:https://music.ishkur.com/译:猫见意netee(个人喜好,听至何处,译至何处。若对译文有所异议,诚邀礼貌沟通。若对原

    2024年 5月 24日
  • 单片机应用技术项目教程c语言版第二版_单片机的c语言程序设计与应用第三版课后答案

    单片机应用技术项目教程c语言版第二版_单片机的c语言程序设计与应用第三版课后答案单片机应用技术(C语言版)第2版课后习题答案 王静霞.pdf单片机应用技术(C语言版)第二版课后习题答案序号知识点题型内容答案1项目一1.151系列单片机的主要由组成。A熟悉单片单项A.运算器、控制器B.加法器、寄存器机操作环选择C.运算器、加法器D.运算器、译码器境题280

    激活谷笔记 2024年 5月 22日
  • 周大福ctf足金999l

    周大福ctf足金999l每经记者:张卓青 每经编辑:易启江近期,大连银行原行长王劲平受贿罪一案的申诉遭大连市高级人民法院驳回,王劲平犯受贿、巨额财产来源不明罪案暂时告一段落。记者注意到,在主政大连银行期间,王劲平多次利用职权之便为行贿企业的贷款甚至是不合规贷款大开方便之门,收受贿赂达791万元,他在2017年因受贿

    激活谷笔记 2024年 5月 18日
关注微信