哈夫曼树的构造规则

作者&投稿:杨希 (若有异议请与网页底部的电邮联系)
~

哈夫曼树的构造规则是若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。

在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。

哈夫曼树的数据为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下。

于是频率码长,频率高编码短,这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。

因此,求传送报文的最短长度问题转化为求由字符集中的所有字符作为叶子结点,由字符出现频率作为其权值所产生的哈夫曼树的问题。利用哈夫曼树来设计二进制的前缀编码,既满足前缀编码的条件,又保证报文编码总长最短。




2,3,6,7,14,19,22怎么画成哈夫曼树求解?
哈夫曼树为:100 \/ \\ 60 40 \/ \\ \/ \\ 28 32 19 21 \/ \\ 11 17 \/ \\ \/ \\ 5 6 7 10 \/ \\ 2 3 编码左子树\/为0 右子树\\为1 假设有n个值,则构造出的哈夫曼树有n个叶子结点。 n个值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵...

哈夫曼树的构建过程
哈夫曼树:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。哈夫曼树的构造:假设给定的权值如下:3,5,7,8,10,15;首先取集合中最小的两个数:3...

哈夫曼树一定是完全二叉树吗
构造哈夫曼树的思想是每次选k个权重最小的元素来合成一个新的元素,该元素权重为k个元素权重之和。但是当k大于2时,按照这个步骤做下去可能到最后剩下的元素少于k个。解决这个问题的办法是假设已经有了一棵哈夫曼树(且为一棵满k叉树),则可以计算出其叶节点数目为(k-1)nk+1,式子中的nk表示子...

哈夫曼树的结点个数不能是偶数。
关于哈夫曼树的结点个数不能是偶数回答如下:1.哈夫曼树介绍 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。在计算机数据处理中,哈夫曼编码...

哈夫曼树有什么特点?
其次,哈夫曼树的特点在于它是一种最优二叉树。在最优二叉树中,树的每个节点的左右子树的选择都是为了使得整棵树的编码长度最小。哈夫曼树就是这种最优二叉树的一种特殊形式,它是由权值最小的n个叶子节点构造而成的。具体来说,哈夫曼树的构造过程如下:首先,将n个权值最小的叶子节点添加到一个...

...3,5,7,9,11),要求根据给定的权值集合构造一棵哈夫曼树
夫曼树的构造:(1)根据给定的n个权值{w1,w2,...,wn}构造n棵二叉树的集合F={T1,T2,...,Tn},其中Ti中只有一个权值为wi的根结点,左右子树为空;(2)在F中选取两棵根结点的权值为最小的数作为左、右子树以构造一棵新的二叉树,且置新的二叉树的根结点的权值为左、右子树上根结点的...

假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别
平均码长=(4*0.09+3*0.15+4*0.04+4*0.07+2*0.28+4*0.08+2*0.21+3*0.18)\/1.1=2.81。假设有n个权值,则构造出的哈夫曼树有n个叶子结点。n个权值分别设为 w1、w2、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在...

数据结构 哈夫曼树在构造时 有顺序要求吗 比如左右子树的顺序要固定什...
节点按照权值排序的规则,例如两个原始节点或者一个原始节点和一个新建节点,具有相同的权值时,需要统一序列中的前后顺序(序列中的前后顺序也就是确定哪个是左子节点和右子节点),目的仍然是满足构造出的哈夫曼树具有相同的结构#include<stdio.h> include<iostream> define INF 0x3f3f3f3f define MALL ...

权值序列为:10,16,20,6,30,24,如何构造出一棵哈夫曼树?
哈夫曼树构造规则是先从序列中选取两个最小的权值的点来构造树,新的树根的权值是两个左右子节点的权值和,该新的权值然后放回到权值序列中.迭代这个过程直到只有一棵树为止.所以该哈夫曼树是:106 \/ \\ 44 62 \/ \\ \/ \\ 20 24 30 32 \/ \\ 16 16 \/ \\ 6 10 ...

我想问一下哈夫曼树是否唯一
哈夫曼树不唯一,因为没有限定左右子树,并且有权值重复时,可能树的高度都不唯一,唯一的只是带权路径长度之和最小。哈夫曼树(Huffman)树又称最优二叉树,是指对于一组带有确定权值的叶子结点所构造的具有带权路径长度最短的二叉树。从树中一个结点到另一个结点之间的分支构成了两结点之间的路径,...

平度市17050782087: 哈夫曼树怎样构造编码? -
致慧麝香: 先编造哈夫曼树,哈夫曼树构造规则: 假设有n个权值,则构造出的哈夫曼树有n个叶子结点. n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) ...

平度市17050782087: 用5个权值{3,2,4,5,1}构造的哈夫曼树的带权路径长度 用5个权值{3,2,4,5,1}构造的哈夫曼树的带权路径长度 -
致慧麝香:[答案] 先构造哈夫曼树,其构造规则如下:假设有n个权值,则构造出的哈夫曼树有n个叶子结点. n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在...

平度市17050782087: 权值序列为:10,16,20,6,30,24,如何构造出一棵哈夫曼树? -
致慧麝香:[答案] 哈夫曼树构造规则是先从序列中选取两个最小的权值的点来构造树,新的树根的权值是两个左右子节点的权值和,该新的权值然后放回到权值序列中.迭代这个过程直到只有一棵树为止. 所以该哈夫曼树是: 106 / \ 44 62 / \ / \ 20 24 30 32 / \ 16 16 / \ 6 10

平度市17050782087: 怎样构造合适的哈夫曼树? -
致慧麝香: 来自百度百科:哈夫曼树构造方法: 假设有n个权值,则构造出的哈夫曼树有n个叶子结点. n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) 在森...

平度市17050782087: 哈夫曼树的构造,关键字如图 -
致慧麝香: 哈夫曼树构造规则:假设有n个权值,则构造出的哈夫曼树有n个叶子结点. n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(3)从森林中删除选取的两棵树,并将新树加入森林;(4)重复(2)、(3)步,直到森林中只剩一棵树为止 根据上述步骤得到的哈夫曼数是 (100) / \ (43) 57 / \ / \ (20) 23 (27) 30 / \ / \9 (11) 11 16 / \ 4 7

平度市17050782087: 哈夫曼树,一定要按照同层节点权值由小到大的次序构造?如果我不按从小到大的话,哈夫曼树岂不是不唯一了?到底有什么规则没有哦? -
致慧麝香:[答案] 没有规定说哈夫曼树构造出来时唯一的,哈夫曼编码只是为了让带权路径达到最小,所以,同层不按大小排序,对树的带权路径没有影响,也就是编码长度没有变化,变化的只是编码的值变了,如: 3 3 / \ / \ A1 B2 B2 A1 A的编码本来是0,B是1,变...

平度市17050782087: 怎样构造哈夫曼树及其带权路径的求法 -
致慧麝香: 其中每颗二叉树TI中只有一个带权WI的根节点,其左右子树为空.(2)在F中选取两颗根节点的权值最小的树作为左右子树构造一颗新的二叉树.parent=i;HT[i].lchild=s2;HT[i].rchild=s1;HT[i].weight=HT[s1].weight+HT[s2].weight.这棵树就是哈弗曼...

平度市17050782087: 数据结构 哈夫曼树在构造时 有顺序要求吗 比如左右子树的顺序要固定什么的 必须谁左谁右之类的 ? -
致慧麝香: 1、我们可以统一确定左子节点和右子节点的大小关系,例如所有构造都必须使得左子节点的权值不小于右子节点,免得给出相同的原始节点序列,所构造的哈夫曼树结构不同2、节点按照权值排序的规则,例如两个原始节点或者一个原始节点和...

平度市17050782087: 有关构造哈夫曼树的问题 -
致慧麝香: 1. 根据给定的n个权值{w1,w2,…wn}构成n棵二叉树的集合F={T1,T2,..,Tn},其中每棵二叉树Ti中只有一个带权wi的根结点,左右子树均空. 2. 在F中选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值...

平度市17050782087: 构造哈夫曼树 -
致慧麝香: 第一步排序 2 3 6 7 10 19 21 32 构图如下 谢谢提醒 我粗心了…… 字符版 复制到记事本里看********o********** *******/*\********* *****o*****o******* ****/*\***/*\****** ***19*21**o**32**** *********/*\******* ********o***o****** *******/*\*/*\***** *******o*6*7*10**** ******/*\********** ******2*3**********

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