- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一棵度为2的树与一棵二叉树有何区别? 解:二叉树是颗有序树,但度为2的树则未必有序。 平衡树—— 排序树—— 判定树—— 带权树—— 最优树—— 特点:左右子树深度差 ≤1 特点:“左小右大” 例如,12个球只称3次分出轻重 特点:路径长度带权值 带权路径长度最短的树,又称 Huffman树,用途之一是通信中的压缩编码。 二叉树的应用 6.5 霍夫曼树 6.4 树和森林 树的存储结构--二叉链表表示法 typedef struct CSNode{ ElemType data; struct CSNode *firstchild,*nextsibling; }CSNode,*CSTree; 树的存储结构--二叉链表表示法 树 二叉树 对应 存储 存储 解释 解释 6.5 霍夫曼树及其应用 路 径: 路径长度: 带权路径长度: 树的带权路径长度: 霍 夫 曼 树: 由一结点到另一结点间的分支所构成 路径上的分支数目 结点到根的路径长度与结点上权的乘积 d e b a c f g 树中所有叶子结点的带权路径长度之和 带权路径长度最小的树 a→e的路径长度= 2 WPL = ?wklk k=1 n d c a b 2 4 7 5 WPL=7*3+5*3+2*1+4*2=46 a b c d 7 5 2 4 WPL=7*1+5*2+2*3+4*3=35 a b c d 7 5 2 4 WPL=7*2+5*2+2*2+4*2=36 权值分别为7,5,2,4,构造有4个叶子结点的二叉树 a 7 b 5 c 2 d 4 a 7 b 5 c 2 d 4 6 a 7 b 5 c 2 d 4 11 a 7 b 5 c 2 d 4 18 a 7 b 5 c 2 d 4 霍夫曼树的构造过程 操作要点:对权值的合并、删除与替换,总是合并当前值最小的两个 基本思想:使权大的结点靠近根 在远程通讯中,要将待传字符转换成二进制的字符串,怎样编码才能使它们组成的报文在网络中传得最快? ABACCDA 000110010101100 000011010 霍夫曼树应用实例--霍夫曼编码 出现次数较多的字符采用尽可能短的编码 关键:要设计长度不等的编码,则必须使任一字符的编码都不是另一个字符的编码的前缀-前缀编码 0000 AAAA ABA BB 重码 ABACCDA 000011010 霍夫曼树应用实例--霍夫曼编码 A C B D 0 0 0 1 1 1 采用二叉树设计前缀编码 左分支用“0” 右分支用“1” A—0 B—110 C—10 D—111 0110010101110 ABACCDA 分解接收字符串:遇“0”向左,遇“1”向右;一旦到达叶子结点,则译出一个字符,反复由根出发,直到译码完成。 0110010101110 A C B D 0 0 0 1 1 1 ABACCDA 特点:每一码都不是另一码的前缀,绝不会错译! 称为前缀码 霍夫曼编码的译码过程 基本思想:概率大的字符用短码,小的用长码,构造霍夫曼树 霍夫曼编码的构造 例:某系统在通讯时,只出现C,A,S,T,B五种字符,其出现频率依次为2,4,2,3,3,试设计Huffman编码。 14 8 4 6 4 2 2 0 0 0 1 1 1 3 3 0 1 T B A C S T 00 B 01 A 10 C 110 S 111 例6.2 根据给定的n个权值{w1,w2,……wn},构造n棵只有根结点的二叉树。 在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和。 在森林中删除这两棵树,同时将新得到的二叉树加入森林中。 重复上述两步,直到只含一棵树为止,这棵树即霍夫曼树。 霍夫曼树的构造过程 Ch5_8.c typedef struct { int weght; int parent,lch,rch; }*HuffmanTree; 霍夫曼树构造算法的实现(算法6.10) 采用顺序存储结构——一维结构数组 结点类型定义 一棵有n个叶子结点的Huffman树有 个结点 2n-1 1)初始化HT[1..2n-1]:lch=rch=parent=0 2)输入初始n个叶子结点:置HT[1..n]的weight值 3)进行以下n-1次合并,依次产生HT[i],i=n+1..2n-1: 3.1)在HT[1..
您可能关注的文档
- (精)实验1电阻电容电压和电流的测量.ppt
- (精)实验九 酵母菌的计数.ppt
- (精)实验三、Quartus的基本使用.ppt
- (精)实验室基础知识.ppt
- (精)实验性肝性脑病.ppt
- (精)实验用兔饲养管理简介.ppt
- (精)实用英语翻译教程.ppt
- (精)食管癌手术径路的评价.ppt
- (精)食品腐败变质.ppt
- (精)食品营养价值分析.ppt
- “绿色低碳”环保知识网络答题部分答案.pdf
- 2023年环卫清洁装备行业市场需求分析报告及未来五至十年行业预测报告.pdf
- ETC020903 项目计划+测试题及其答案.pdf
- 2023届贵州省安顺市六年级数学第一学期期末达标测试试题含解析.pdf
- 争做新时代好少年作文800字【5篇】.pdf
- [企业,托管,国外,其他论文文档]企业托管:国外范例与我国的理论探索和实践操作.pdf
- 丰田卡罗拉轿车燃油供给系统故障的检修.pdf
- 人教版八年级上册物理期末复习:第一章至第六章共6个单元测试卷全套(含答案解析).pdf
- 人教版九年级化学第五单元第一节中档难题提升题.pdf
- 人教版七年级数学上册第四章测试卷2套含答案.pdf
文档评论(0)