数据结构课ppt霍夫曼树
- 格式:ppt
- 大小:252.50 KB
- 文档页数:37
数据结构(⼆⼗七)Huffman树和Huffman编码 Huffman树是⼀种在编码技术⽅⾯得到⼴泛应⽤的⼆叉树,它也是⼀种最优⼆叉树。
⼀、霍夫曼树的基本概念 1.结点的路径和结点的路径长度:结点间的路径是指从⼀个结点到另⼀个结点所经历的结点和分⽀序列。
结点的路径长度是指从根结点到该结点间的路径上的分⽀数⽬。
2.结点的权和结点的带权路径长度:结点的权是指结点被赋予⼀个具有某种实际意义的数值。
结点的带权路径长度是该结点的路径长度与结点的权值的乘积。
3.树的长度和树的带权路径长度:树的长度就是从根结点到每⼀结点的路径长度之和。
树的带权路径长度就是所有叶结点的带权路径长度之和。
4.最优⼆叉树:带权路径长度WPL最⼩的⼆叉树称为霍夫曼树(Huffman Tree)或最优⼆叉树。
⼆叉树a的WPL = 5 x 1 + 15 x 2 + 40 x 3 + 30 x 4 + 10 x 5 = 315 ⼆叉树b的WPL = 5 x 3 + 15 x 3 + 40 x 2 + 30 x 2 + 10 x 2 = 220 ⼆、霍夫曼树的构造⽅法由给定的n个权值{w1,w2,... ,wn}构成由n棵⼆叉树所构成的森林F={T1,T2,...,Tn},其中每棵⼆叉树只有⼀个根结点,并且根结点的权值对应于w1,w2,...,wn在F中选取根结点的权值最⼩的两棵树,分别把它们作为左⼦树和右⼦树去构造⼀棵新的⼆叉树,新的⼆叉树的各结点的权值为左、右⼦树的权值之和在F中删除上⼀步中选中的两棵树,并把新产⽣的⼆叉树加⼊到F中重复第2步和第3步,直到F只含⼀棵树为⽌,这棵树就是霍夫曼树。
三、霍夫曼编码 霍夫曼树更⼤的⽬的是解决了当年远距离通信(电报)的数据传输的最优化问题。
霍夫曼编码的定义:设需要编码的字符集为(d1,d2,...,dn)各个字符在电⽂中出现的次数或者频率集合为{w1,w2,...,wn},以d1,d2,...,dn为叶⼦结点,w1,w2,...,wn作为相应叶⼦结点的权值来构造⼀棵霍夫曼树。