Huffman树特点:肯定没有度为1的结点;一棵有n个叶子结点的Huffman树,共有2no-1个结点(因为n=no+n,+nz=2no-1)讨论:Huffman树有什么用?例:设有4个字符d,i,a,n,出现的频度分别为7,5,2,4怎样编码才能使它们组成的报文在网络中传得最快?法1:等长编码令d=00,i=01,a=10,n=11,则:频度高的信息WPL1=2bit×(7+5+2+4) =36用短码,反之用长码,传输法2:不等长编码效率肯定高!令d=0;i=10,a=110,n=111,则WPL2=1bit×7+2bit×5+3bit×(2+4)=35
例:设有4个字符d,i,a,n,出现的频度分别为7,5,2,4, 怎样编码才能使它们组成的报文在网络中传得最快? 法1:等长编码 令d=00,i=01,a=10,n=11,则: WPL1=2bit×(7+5+2+4)=36 法2:不等长编码 令d=0;i=10,a=110,n=111,则: 讨论:Huffman树有什么用? 频度高的信息 用短码,反之 用长码,传输 效率肯定高! WPL2=1bit×7+2bit×5+3bit×(2+4)=35 Huffman树特点:肯定没有度为1的结点;一棵有n 0个叶子结 点的Huffman树,共有2n0 -1个结点;(因为n=n0+n1+n2=2n0 -1)
6.7.2哈夫曼编码问题哈夫曼树可用于构造代码总长度最短的编码方案。具体构造方法如下:设需要编码的字符集合为{d1,d2...,dn},各个字符在电文中出现的次数集合为{wl,w2,..,wn},以dl,d2.,dn作为叶结点,以wl,w2,..,wn作为各叶结点的权值构造一棵二又树,规定哈夫曼树中的左分支为0,右分支为1,则从根结点到每个叶结点所经过的分支对应的0和1组成的序列便为该结点对应字符的编码。这样的代码总长度最短的不等长编码称之为哈夫曼编码。明确:要实现哈夫曼编码,就要先构造哈夫曼树
6.7.2 哈夫曼编码问题 哈夫曼树可用于构造代码总长度最短的编码方案。具体 构造方法如下: 设需要编码的字符集合为{d1,d2,.,dn},各个字符在电 文中出现的次数集合为{w1,w2,.,wn},以d1,d2,.,dn作为叶 结点,以w1,w2,.,wn作为各叶结点的权值构造一棵二叉树, 规定哈夫曼树中的左分支为0,右分支为1,则从根结点到每 个叶结点所经过的分支对应的0和1组成的序列便为该结点对 应字符的编码。这样的代码总长度最短的不等长编码称之为 哈夫曼编码。 明确:要实现哈夫曼编码,就要先构造哈夫曼树