- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树与二叉树重点讲义
赫夫曼编码 字符 A B C D E D 文件编 码长度 频度 45 13 12 16 9 5 定长编码 000 001 010 011 100 101 300 变长编码 0 101 100 111 1101 1100 224 编码方式对文件存储空间的影响 赫夫曼编码 变长编码可能存在的问题---二义性 E、T、W分别编码为00、01、0001 无法判断二进制串0001是ET还是W 前缀码 为了避免二义性,对字符集进行编码时,要求字符集中任一字符的编码都不是其他字符编码的前缀 赫夫曼编码 最优前缀码 设文件字符集C={c1,c2,c3,…,cn},共n个字符 设字符ci在文件中出现的频度为fi,编码长为li,则希望文件总长最短 A B C D 1 1 1 0 0 0 编码 A(0) B(10) C(110) D(111) 问:编码 {00,01,10,11}, {0,1,00,11}, {0,10,110,111},哪一组不是前缀码? 前缀编码示例 赫夫曼树的特点: 没有度为1 的结点,称为严格的二叉树 赫夫曼树与赫夫曼编码的存储表示 Typedef struct{ unsigned int weight; unsigned int parent,lchild,rchild; }HTNode,*HuffmanTree;//动态分配数组存储赫夫曼树 Typedef char *HuffmanCode;//动态分配赫夫曼编码表 7 0 0 0 5 0 0 0 2 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 a b c d 7 5 2 4 c d 2 4 a b 7 5 6 c d 2 4 b 5 11 a 7 a b c d 7 5 2 4 18 7 0 0 0 5 0 0 0 2 5 0 0 4 5 0 0 6 0 3 4 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 7 0 0 0 5 6 0 0 2 5 0 0 4 5 0 0 6 6 3 4 11 0 2 5 0 0 0 0 1 2 3 4 5 6 7 7 7 0 0 5 6 0 0 2 5 0 0 4 5 0 0 6 6 3 4 11 7 2 5 18 0 1 6 1 2 3 4 5 6 7 赫夫曼树的构造过程 w p l r w p l r w p l r w p l r 思想:根据字符出现频率编码,使电文总长最短。 编码:根据字符出现频率构造Huffman树,然后将树中结点引向其左孩子的分支标“0”,引向其右孩子的分支标“1”;每个字符的编码即为从根到每个叶子的路径上得到的0、1序列 例 要传输的字符集 D={C,A,S,T, ; } 字符出现频率 w={2,4,2,3,3} C S 3 3 6 4 2 2 4 8 14 T ; A 0 0 1 1 0 1 1 0 T : 00 ; : 01 A : 10 C : 110 S : 111 赫夫曼编码 从Huffman树根开始,从待译码电文中逐位取码。 若编码是“0”,则向左走; 若编码是“1”,则向右走,一旦到达叶子结点,则译出一个字符;再重新从根出发,直到电文结束 例 电文是{CAS;CAT;SAT;AT} 其编码 “11010111011101000011111000011000” 电文为“1101000” C S 3 3 6 4 2 2 4 8 14 T ; A 0 0 1 1 0 1 1 0 T : 00 ; : 01 A : 10 C : 110 S : 111 译码: 译文只能是“CAT” 赫夫曼树 (Huffman Tree) 例2:已知某系统在通信联络中只可能出现8种字符,其概率分布为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计赫夫曼编码。 首先设8个字符的权分别为w={5, 29, 7, 8, 14, 23, 3, 11} n=8,则m=15,即在有8个叶子结点的赫夫曼树上有15个结点 然后构造一棵赫夫曼树: 29 14 7 8 1 1 1 0 0 0 23 11 5 3 1 1 1 0 0 0 最后就得到8个叶子结点的赫夫曼编码: 0110(5) 10(29) 1110(7) 1111(8) 110(14) 00(23) 0111(3) 010(11) 给定权值7、18、3、32、5、26、12、8,构造相应的赫夫曼树和编码,并计算带权路径长度
您可能关注的文档
- 柳永 蝶恋花.ppt
- 柴静采访周星驰.doc
- 柿子果醋饮料加工工艺的研究.doc
- 标书制作-李卫强.ppt
- 柴油机燃料供给系的构造与维修.ppt
- 柳永词两首.ppt
- 松湖佐岸项目介绍.ppt
- 标准化作业.ppt
- 标准员专业实务.doc
- 某某 学院社会主义核心价值观主题活动总结.doc
- 中国国家标准 GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地.pdf
- GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地.pdf
- 《GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地》.pdf
- 苏教版(2017秋)科学三年级下册1.《种子发芽了》 教案(含课堂练习和反思).docx
- 2024-2025学年小学数学六年级上册冀教版(2024)教学设计合集.docx
- 地理商务星球版七年级上册4.5形成气候的主要因素 同步教案.docx
- 2024-2025学年中职中职专业课金融类73 财经商贸大类教学设计合集.docx
- 2024-2025学年初中地理七年级上册(2024)仁爱科普版(2024)教学设计合集.docx
- 2024-2025学年小学英语二年级上册外研版(一起)教学设计合集.docx
- 2024-2025学年高中数学选择性必修 第二册北师大版(2019)教学设计合集.docx
文档评论(0)