题目如下:

有很多人反应,他们怎么做都做不出正确的答案,结果发过他们画的哈夫曼树的图以后,发现图完全是错误的;

如下图所示:

为什么错误的,因为在遇到有两个权重为17的树的时候,没有遵循选择矮树的原则;

正确的哈夫曼树如下:

这样就能得出正确答案了。

总结:在绘制哈夫曼树的时候,要遵循一下原则:

(1)左子树的权重小于右子树(这个一般人都会注意的,因为哈夫曼树是二叉树,是有序的)

(2)遇到权重相同的,选比较矮的那个(why?因为这样我们的整个哈夫曼树才会尽可能的矮,编码才尽可能的短);

生成过程如下:

软件设计师 --哈夫曼树的一个经典问题相关推荐

  1. 哈夫曼树的一个实例,配对严蔚敏或耿国华的数据结构

    /*这是一个哈弗曼编码的完整实例,没什么含量,只是爱X当时闲书上的写的不*/ #include <stdio.h> #include <stdlib.h> #include & ...

  2. 基于JavaGUI的哈夫曼树编码解码

    资源下载地址:https://download.csdn.net/download/sheziqiong/85640300 资源下载地址:https://download.csdn.net/downl ...

  3. 【算法学习笔记】哈夫曼树的构建和哈夫曼编码的实现代码

    介绍 哈夫曼(Haffman)这种方法的基本思想如下: ①由给定的n个权值{W1,W2,-,Wn}构造n棵只有一个叶子结点的二叉树,从而得到一个二叉树的集合F={T1,T2,-,Tn}. ②在F中选取 ...

  4. 数据结构(哈夫曼树,哈夫曼编码)入门篇,JAVA实现

    什么是哈夫曼树 哈夫曼树就是一种最优判定树,举个例子,如下一个判断逻辑 if(s<60) g=1; else if(s<70) g=2 else if(s<80) g=3 else ...

  5. 一文看懂哈夫曼树与哈夫曼编码

    转自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299884.html 在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUF ...

  6. POJ-Fence Repair 哈夫曼树

    哈夫曼树,一个很耳熟的数据结构课上的内容.是用来处理编码的,准确的说是能够去压缩编码,本身是一种无损的压缩凡是,就是对于给定的字符做一个统计,然后根据统计构建一个长短不一的映射表,再根据这个映射表来恢 ...

  7. 哈夫曼树的构造及C++代码实现

    哈夫曼树的构造过程: (1) 以权值分别为W1,W2...Wn的n各结点,构成n棵二叉树T1,T2,...Tn并组成森林F={T1,T2,...Tn},其中每棵二叉树 Ti仅有一个权值为 Wi的根结点 ...

  8. 赫夫曼树(Haffman)及其运用

    赫夫曼树,别名"哈夫曼树"."最优树"以及"最优二叉树". 概念: 路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径. (从根结点 ...

  9. 哈夫曼树+K叉哈夫曼树

    目录 基本概念 构造方法 证明 代码 k叉哈夫曼树 例题 基本概念 问题:给定n个权值,作为n个叶结点,构造一棵二叉树,而这棵树的特点是,有n个叶节点,叶节点的值为给定的权值.而内部节点的值为子树的权 ...

最新文章

  1. 轻松得到C# ADO.NET的各种数据库连接字符串
  2. 华为机器狗 VS 波士顿狗,谁更胜一筹?
  3. 2019年财政收支分析_2019年CPI走势预测与分析
  4. [今日干货]短视频获得种子用户的途径
  5. iOS开发-开发总结(七)
  6. 马凯军201771010116《面向对象程序设计(java)》第二周学习总结
  7. 华为linux配置ip地址命令是什么,华为S5700基础配置命令
  8. python perl shell_Shell Perl Python 介绍
  9. 一步设置Intellij IDEA 热部署处理方法
  10. 陷阱:使用==来比较原始的包装器对象,如Integer
  11. 如何创建VARCHART XGantt筛选器
  12. xmlspy_XMLSpy是免费的吗? 我说天堂的甘露。
  13. excel文件如何解密工作表保护密码
  14. MySQL之子查询优化
  15. eclipse IED 创建springboot项目教程
  16. 第3章第10节:如何压缩幻灯片中的图片素材 [PowerPoint精美幻灯片实战教程]
  17. 如何去掉抖音短视频水印----全网最好用的去抖音视频水印方法
  18. 运行wordcount时显示Could not obtain block
  19. simulink他励直流电动机降电压启动仿真
  20. 为什么z-index在众多标签中失效

热门文章

  1. linux删除权限命令,管理使用者和设立权限的命令
  2. php分解质因数,用PHP如何实现将一个整数分解为质因数的积?
  3. oracle导出有分区表的用户,分区表导出导入
  4. cli3解决 ie11语法错误 vue_【VUE3.0】它来了,2020年09月18日,Vue.js 3.0 正式发布,但是........
  5. C++ 读取结束的判断
  6. Java Float类详解
  7. laravel 任务队列_laravel队列-让守护进程处理耗时任务
  8. Python基础项目实践之:学生信息管理系统
  9. 虚拟服务器的好处与坏处,常见服务器虚拟化的弊端主要是什么问题?
  10. 九宫怎么排列和使用_什么是九宫飞星,九宫飞星在生活中的应用