求有关哈夫曼编码的问题?

作者&投稿:黄褚 (若有异议请与网页底部的电邮联系)
求解,关于数据结构的哈夫曼编码的问题~


根据题意哈夫曼树的形状类似如下
o
/ \
o Y
/ \
o Y
/ \
o o
/ \ / \
A B C D
或者
o
/ \
o Y
/ \
o Y
/ \
o C
/ \
A B
第1点,编码长度不超过4,每一个“/”边表示为0 ,“\”边表示为1,如上图A的编码是:0000,B是0001,如果深度超过5,有六层的话,最下面的叶子结点编码有5位,所以编码长度不超过4,说明哈夫曼树深度不超过5
第2点,编码1 和 01 是在深度为2、3层,如上面的图Y。
第3点,其他字符有可能是00或者 0000 0001 0010 0011或者 001 0000 0001 在第三层 第四层 第五层,这里说只能在第四层和第五层,不严谨。有可能只有是三个字符的时候,只有三层了。
还可以多少个字符编码:1个或者3个或者4个。

先编造哈夫曼树,哈夫曼树构造规则:
假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:
(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);
(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;
(3)从森林中删除选取的两棵树,并将新树加入森林;
(4)重复(2)、(3)步,直到森林中只剩一棵树为止
如下: ( 5364 )
/ \
(2251) ( 3113 )
/ \ / \
(1059) 1192 ( 1327 ) ( 1786 )
/ \ / \ / \
518 541 ( 650 ) 677 (835) ( 951)
/ \ / \ / \
(295) (355) (385) 450 462 (489)
/ \ / \ / \ / \
138 157 174 181 190 195 242 (247)
/ \
123 124
左边默认为0,右边为1得到编码是
123:111110 124:111111 138:10000 157: 10001 174:10010 181:10011
190:11000 195:11001 242:11110 450:1101 462:1110 518:000
541:001 677:101 1192:01
平均长度指所有叶子结点 频率*长度 /总频率 ?具体还是自己算吧。


一个关于数据结构的问题,有关哈夫曼编码的,解答看不懂,求解答,谢谢...
第1点,编码长度不超过4,每一个“\/”边表示为0 ,“\\”边表示为1,如上图A的编码是:0000,B是0001,如果深度超过5,有六层的话,最下面的叶子结点编码有5位,所以编码长度不超过4,说明哈夫曼树深度不超过5 第2点,编码1 和 01 是在深度为2、3层,如上面的图Y。第3点,其他字符有可能...

求有关哈夫曼编码的问题?
假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其...

有关哈夫曼编码压缩与解压缩的问题.
解压缩比构造哈夫曼树要简单的多,将输入缓冲区中的每个编码用对应的ASCII码逐个替换就可以了。只要记住,这里的输入缓冲区是一个包含每个ASCII值的编码的位流。因此,为了用ASCII值替换编码,我们必须用位流搜索哈夫曼树,直到发现一个叶节点,然后将它的ASCII值添加到输出缓冲区中: int nDesIndex = 0; DWORD nCode...

哈夫曼编码
}HTNode,*HuffmanTree; \/* 动态分配数组存储哈夫曼编码表 *\/typedef char **HuffmanCode; \/* 动态分配数组存储哈夫曼编码表 *\/typedef struct Node{ char leaf; unsigned int weight; struct Node * next;}LeafNode,*LeafLink;typedef struct { LeafLink head; unsigned len;}LeafLinkList; int min1(Huffman...

求解,关于数据结构的哈夫曼编码的问题
表示单个编码长度*使用频率=总的编码长度.而方案二表示的传统编码,就是上面表格中的那个等长编码:"000""001"...它们的长度都是3,所以就是*3 然后为什么哈夫曼编码正确而且最优呢?哈夫曼编码由于构成了一棵树,而且是叶子节点作为编码的代表,所以没有任何一个编码是另一个编码的前缀,所以哈夫曼编码是...

有关哈夫曼编码方法,以下说法正确是 ( )
【答案】:B 本题考查无损压缩技术中哈夫曼编码基本概念。哈夫曼编码属于熵编码,是建立在信源统计特性之上无损压缩编码技术,按照信源符号出现频度或概率排序后递归地自底向上建立编码树,即可得到变长编码。除熵编码外,词典编码也属于无损压缩编码,其基本思想是利用数据本身包含有重复代码这个特性。静态图像...

关于哈夫曼编码的问题。
哈弗曼跟你对应的编码树走变化,你从根结点开始编码就可以选择那个分支用0哪个用1,这样,你想要他是什么编码都可以,只是其他的编码也跟着变化,整体上,你每个字的编码位都不会有变化,4位的总是4位 你也可以给c编成标准答案,但是没有必要,因为你已经是正确的了,标准只是正确的一种情况 ...

关于哈夫曼编码的问题!急啊!!!
1001000 1010101 1000001 01001110 1011010 1001001 这是二进制的编码 应该是对应十进制的 72 69 67 72 85 65 78 90 73 这么大的数字对应的明显不是字母表,如果没有猜错的话对应当应该是ASCLL码表 这九个数字对应的ASCLL码是:H E C H U A N Z I 连起来应该就是答案了:HECHUANZI 虽然我不...

哈夫曼编码
具体来说,哈夫曼编码算法首先会统计源数据中每个符号的出现频率。然后,根据这些频率构建一个哈夫曼树。在构建过程中,频率高的符号会被放置在树的浅层,而频率低的符号则被放置在深层。接下来,通过对哈夫曼树进行遍历,为每个符号分配一个唯一的二进制编码。这些编码是前缀编码,意味着没有任何编码是...

关于哈夫曼编码
关于哈夫曼编码,是从摩尔斯电码说起的,这种电码是用点(嘀)和长线(嗒)对英文的26个字母进行编码的,按照对信息度量的方法,如果对26个字母采用等长度析编码,比如进行进制编码就需要log26(这里的log函数是以2为底的),也就是约5比特信息,而采用摩尔斯电码的方法,平均只需要3比特,这样效率就...

张北县17310344187: 哈夫曼编码问题请教; -
油肩丹桃: 两个最小的编码没有左右之分.是不同,哈夫曼编码不是唯一的,但是它们的WPL(带权路径长度)都是一样的.如果,最下面有两个二叉树,那么也不用考虑左右的问题,你只将最下面两个二叉树当作两个节点就可以了.记住:哈夫曼编码不...

张北县17310344187: 一道关于哈夫曼编码的题该怎么做? -
油肩丹桃: 首先,亲请记住,无论是数学题政治题C语言,任何情况下都不可以选“以上都不是”.哈夫曼编码是非常经典的一种变长编码方案.我偷个懒,方法描述如下:首先,将符号按照概率由大到小排队.编码时,从最小概率的两个符号开始,可选...

张北县17310344187: 有关哈夫曼编码的问题!(请高手帮帮忙,谢谢了哦!)
油肩丹桃: 提问者只给了7个字母的权值,故,按7个字母求解. 由于各人不同,所构造的哈夫曼编码可能不同,先给出一种编码形式 a 0101 b 10 c 01000 d 00 e 01001 f 11 g 011 二进制表示易知. 与二进制比,此方法在保证准确的情况下,比较节省时间空间.

张北县17310344187: 什么是哈夫曼编码 -
油肩丹桃: 哈夫曼编码(Huffman Coding)是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种.uffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长 度最短的码字,有时称之为最佳编码,一般就叫作Huffman...

张北县17310344187: 哈夫曼树编码问题
油肩丹桃: 设8个字母依次为:a b c d e f g h 构成由8棵二叉树组成的集合F={a, b, c, d, e, f, g, h},如下图所示,圆圈代表二叉树节点,将字母出现的频率作为每棵二叉树的权重,写在节点的上方.构造哈夫曼树的过程如下: 1、 首先在二叉树集合F中取出...

张北县17310344187: 请教一个哈夫曼编码问题 -
油肩丹桃: 没错,哈弗曼跟你对应的编码树走变化,你从根结点开始编码就可以选择那个分支用0哪个用1,这样,你想要他是什么编码都可以,只是其他的编码也跟着变化,整体上,你每个字的编码位都不会有变化,4位的总是4位你也可以给c编成标准答案,但是没有必要,因为你已经是正确的了,标准只是正确的一种情况

张北县17310344187: 求助有关哈夫曼树编码的问题?急! -
油肩丹桃: 我去年数据结构课程设计做的就是这个,具体什么意思也忘得差不多了 反正做了好多天的 把这段代码复制给你void HuffmanCoding(HuffmanTree *HT,HuffmanCode *HC, LNode &L,int n){ //构造赫夫曼树HT,并求出n个字符的赫夫曼编码HC ...

张北县17310344187: 如何叙述哈夫曼编码 -
油肩丹桃: 哈夫曼编码 哈夫曼树可用于构造最短的不等长编码方案,具体做法如下:设需要编码的字符集合为{d1,d2,…,d¬n},它们在字符串中出现的频率为{w1, w2,…, wn},以d1,d2,…,d¬n作为叶子结点, w1, w2,…, wn¬作为叶子结点的权值,构造一颗...

张北县17310344187: 哈夫曼编码原理 -
油肩丹桃: 霍夫曼(Huffman)编码属于码词长度可变的编码类,是霍夫曼在1952年提出的一种编码方法,即从下到上的编码方法.同其他码词长度可变的编码一样,可区别的不同码词的生成是基于不同符号出现的不同概率.生成霍夫曼编码算法基于一种称...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网