[经济学]第6章 树.ppt

[经济学]第6章 树

* a b c d e .12 .40 .15 .08 .25 .12 0 0 0 .40 0 0 0 .15 0 0 0 .08 0 0 0 .25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 HT 1 2 3 4 5 6 7 8 9 weight parent lchild rchild 6.6.1、最优二叉树(赫夫曼树) * a b c d e .12 .40 .15 .08 .25 .12 6 0 0 .40 0 0 0 .15 0 0 0 .08 6 0 0 .25 0 0 0 .20 0 4 1 0 0 0 0 0 0 0 0 0 0 0 0 HT 1 2 3 4 5 6 7 8 9 10 weight parent lchild rchild 6.6.1、最优二叉树(赫夫曼树) * a b c d e .12 .40 .15 .08 .25 .12 6 0 0 .40 9 0 0 .15 7 0 0 .08 6 0 0 .25 8 0 0 .20 7 4 1 .35 8 3 6 .60 9 5 7 1 0 2 8 HT 1 2 3 4 5 6 7 8 9 weight parent lchild rchild 6.6.1、最优二叉树(赫夫曼树) *** * 1.问题的提出 (1)编码的长短(等长编码) 在英文通信中,在计算机中经常需要将字符转化为二进制编码。 例:设电文中只用了A,B,C,D四个字母; 采用二位编码为00,01,10,11; 电文为“ACDACAB”的二进制代码串:00101100100001; 总长为14位,对方接收后可按二位一分进行译码。 6.6.2、赫夫曼编码 * 不等长编码: 在实际应用中,由于字符出现的频率不同,可采用不等长编码降低编码的长度; 在“ACDACAB”中A,C出现的次数较多,A,C编码要短 例如0(A),00(B),1(C),01(D),电文的二进制代码串:010101000,总长为9位。 (2)译码唯一性 采用不等长编码出现的问题,译码唯一性。 即要采用不等长编码,又要保证译码唯一性,就必须采用前缀编码。 6.6.2、赫夫曼编码 * (3)前缀编码。 要求任一个字符的编码都不是另一个字符的编码的前缀,这种编码称做前缀编码。 A,B,C,D的编码为:0,00,1,01 A,B,C,D的编码为:00,01,10,11 A,B,C,D的编码为:0,10,110,111 6.6.2、赫夫曼编码 * (4)电文长度与哈夫曼树。 假设组成电文的字符集合是D={d1,d2,...dn},每个字符出现的次数是c1,c2,...,cn,di对应的编码长度是li。 通常我们用di出现的概率来代替出现的次数,设di出现的概率为wi。 6.6.2、赫夫曼编码 * (1)赫夫曼编码举例 利用赫夫曼树对句子“it is a tree”进行编码。 句子中有字符:{i,t,?,s,a,r,e}共七个字符。七个字符的权值分别为:{2,2,3,1,1,1,2}。 编码过程 编码结果: 见图 i t ? i s ? a ? t r e e 011 10 11 011 001 11 0000 11 10 0001 010 010 6.6.2、赫夫曼编码 * 赫夫曼编码——利用赫夫曼树得到的前缀编码。 (2)赫夫曼编码的方法 a.首先构造出赫夫曼树: b. 设计赫夫曼编码:在有了赫夫曼树之后,将树中每个结点的左分支用“0”代表,右分支用“1”代表。则从根结点到叶结点之间,沿途路径上的分支组成的“0”或“1”代码串就是该叶子结点所代表的字符编码,称为赫夫曼编码。 6.6.2、赫夫曼编码 * (3)赫夫曼编码的特点 由赫夫曼树的构成可知权大的结点靠近根结点,其路径短。 电文的总长度最短 赫夫曼树是带权路径长度最短的二叉树。 前缀码 赫夫曼编码对应终点为叶子的路径,相互不完全重叠。 6.6.2、赫夫曼编码 * .12 6 0 0 .40 9 0 0 .15 7 0 0 .08 6 0 0 .25 8 0 0 .20 7 4 1 .35 8 3 6 .60 9 5 7 1 0 2 8 1 2 3 4 5 6 7 8 9 weight parent lchild rchild HC \0 cd 1 1 1 1 \0 6.6.2、赫夫曼编码 1

文档评论(0)

1亿VIP精品文档

相关文档