问一下关于哈夫曼编码的问题。

Jue_Xin 2010-03-06 09:44:19

1)哈夫曼编码是不是唯一的?我怎么和答案构造出来的不一样?
2) 哈夫曼树是不是,不是唯一的?
2) 哈夫曼编码是不是根据哈夫曼树构造的?那么哈夫曼树的生成如果不唯一,那么哈夫曼树的编码就应该不唯一?
3)http://www.emcad.com/Teaching/DS-DB/images/shu-2-5.gif
图片中第(c)步不是应该把E和F生成的0.1和C或D其中一个合并吗?怎么是C和D合并呢?
4)如何才能令哈夫曼树唯一呢?贪心策略是什么?如果遇到三个相同值的树时怎么办?选谁呢?
...全文
347 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lryxxh 2010-03-08
  • 打赏
  • 举报
回复
哈弗曼编码,听着耳熟.........
bawgiitx 2010-03-08
  • 打赏
  • 举报
回复
引用 6 楼 musiclee 的回复:
建议楼主多看看数据结构和算法,(PS:昨天没说完,结果不让连续发帖超过3次,就睡觉了)

书里写的很详细
偶看LZ头象
musiclee 2010-03-07
  • 打赏
  • 举报
回复
贪心法的思想 是以局部最优-->推出整体最优(及最优子结构性),哈弗曼就是利用这种思想,每一步最小保证整体最小。至于左右子树顺序完全无所谓,只不过是为了统一最小右大,当然造成的结果(及哈弗曼编码)也不同,但他们的总权值还是最小
建议楼主多看看数据结构和算法,(PS:昨天没说完,结果不让连续发帖超过3次,就睡觉了)
Jue_Xin 2010-03-07
  • 打赏
  • 举报
回复
我觉得哈夫曼应该是唯一的。就是要记得
1.加上两个最小值的和值在权集合的最后。
2.从左到右选最小的两个权值。
3.不要换顺序或排顺序。
musiclee 2010-03-06
  • 打赏
  • 举报
回复
3 为了保持统一 就吧小的权值放左边(或右边)
musiclee 2010-03-06
  • 打赏
  • 举报
回复
3 哈弗曼树是一种构造最小权值的思想,不是一个是在的结构,对于不同问题构造的树叶不同
musiclee 2010-03-06
  • 打赏
  • 举报
回复
1 对于一个已经构造成功的哈弗曼树来说 哈夫曼编码是唯一的
2 一个问题构造成哈弗曼树不一定是唯一的 总权值最小(不一定是一棵树)
Jue_Xin 2010-03-06
  • 打赏
  • 举报
回复
还有问多一下,构造哈夫曼树时是不是一定要大的写右边?
综合实验: 1. 描述 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站编写一个哈夫曼码的编/译码系统。 2. 基本要求 一个完整的系统应具有以下功能: (1) I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 (2) E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 (3) D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件Textfile中。 (4) P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。 (5) T:印哈夫曼树(Tree printing)。将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 3. 测试数据 用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAME IS MY FAVORITE”。 字符 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧