重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)Huffman树及其应用

Huffman树及其应用
Huffman树及其应用

Huffman树 基本概念 两个结点间的路径 由一个结点到另一个结点之间的分支构成 路径长度 路径上的分支数目 树的路径长度 ·从树根到每个结点的路径长度之和 结点的带权路径长度 从该结点到树根之间的路径长度与结点上的权的乘积 树的带权路径长度 ·树中所有叶子结点的带权路径长度之和,记作WPL
Huffman树 • 基本概念 – 两个结点间的路径 • 由一个结点到另一个结点之间的分支构成 – 路径长度 • 路径上的分支数目 – 树的路径长度 • 从树根到每个结点的路径长度之和 – 结点的带权路径长度 • 从该结点到树根之间的路径长度与结点上的权的乘积 – 树的带权路径长度 • 树中所有叶子结点的带权路径长度之和,记作WPL

Huffman树 如 a WPL=7*2+5*2+2*2+4*2=36 WPL=4*2+7*3+5*3+2*1=46 bWPL=7*1+5*2+2*3+4*3=35
Huffman树 • 如 a b c d 7 5 2 4 c d 4 5 2 7 a b a b b 7 5 4 c 2 WPL = 7*2 +5*2 + 2*2 +4*2 = 36 WPL = 4*2 +7*3 + 5*3 +2*1 = 46 WPL = 7*1 + 5*2 + 2*3 +4*3 = 35

Huffman树 Huffman树 又称赫夫曼树或最优二叉树 假设有n个权值{w1,w2…,wn},试构造一棵有n各叶子结 点的二叉树,每个叶子结点带权为w,则其中带权路径 长度WPL最小的二叉树即为 Huffman树 权在不同应用中含义不同,如所占比例,出现概率等 Huffman树的应用 用于实现最佳判定算法,让概率最大的事件尽早被判定 用于通信编码,让概率大的字符对应的编码尽可能短 等等
Huffman树 • Huffman树 – 又称赫夫曼树或最优二叉树 – 假设有n个权值{w1 ,w2 ,…wn},试构造一棵有n各叶子结 点的二叉树,每个叶子结点带权为wi,则其中带权路径 长度WPL最小的二叉树即为Huffman树 – 权在不同应用中含义不同,如所占比例,出现概率等 • Huffman树的应用 – 用于实现最佳判定算法,让概率最大的事件尽早被判定 – 用于通信编码,让概率大的字符对应的编码尽可能短 – 等等

Huffman树 如:将百分制转换为五分制 分数0~5960-6970~7980-8990~100 已知 比例数5%15%40%30%10%权 可能的判定算法:不及格优良 60>中等良刻优良 良好 优良 不及格及 格
Huffman树 如:将百分制转换为五分制 分数 0~59 60~69 70~79 80~89 90~100 比例数 5% 15% 40% 30% 10% 权 已知: 可能的判定算法: a<60 a<70 a<80 a<90 不及格 及格 中等 良好 优良 70 a 80 80 a 90 60 a 70 a<60 不及格 优良 及格 中等 良好 a<80 a<70 a<90 a<60 不及格 及格 中等 良好 优良

Huffman树 构造 Huffman树的一般规律 根据给定的n个权值{w1,w2,…wn},构成n棵二叉 树的集合F={T,T2,Tn},其中每棵二叉树T中只有 个带权为w的根结点,其左右子树均空 2)在F中选取两棵根结点的权值最小的树作为左右 子树构造一棵新的二叉树,且置新的二叉树的根结 点的权值为其左右子树上根结点的权值之和 3)在F中删除这两棵树,同时将新得到的二叉树加 入F中 重复2)和3),直到F中只含一棵树为止。此时得到的 便是 Huffman树
Huffman树 • 构造Huffman树的一般规律 – 1) 根据给定的n个权值{w1 ,w2 ,…wn},构成n棵二叉 树的集合F={T1 ,T2 ,…Tn},其中每棵二叉树Ti中只有 一个带权为wi的根结点,其左右子树均空 – 2) 在F中选取两棵根结点的权值最小的树作为左右 子树构造一棵新的二叉树,且置新的二叉树的根结 点的权值为其左右子树上根结点的权值之和 – 3) 在F中删除这两棵树,同时将新得到的二叉树加 入F中 – 重复2)和3),直到F中只含一棵树为止。此时得到的 便是Huffman树

Huffman树 ·如:已知事件abcd对应的权值集合w={7,5,24},试 设计对应 Huffman树 a(b a stepl 6 c d step2 24 step 2 4 step4 4
Huffman树 • 如:已知事件a,b,c,d对应的权值集合w={7,5,2,4},试 设计对应Huffman树 a b c d 7 5 2 4 step1 c d 2 4 6 a b 7 5 step2 a 7 c d 2 4 b 6 5 11 step3 a 7 c d 2 4 b 6 5 11 step4 18

Huffman树 ·如:已知事件 a b cdef对应的权值集合w={5,4,71911} 试设计对应 Huffman树 ⑤d(6(2dl8 e a 5 ep step2 step3 20 34 20 34 15 15 a( step4 step5 step
Huffman树 • 如:已知事件a,b,c,d,e,f对应的权值集合w={5,4,7,19,11,8}, 试设计对应Huffman树 a b c d 5 4 7 19 step1 e f 11 8 a b 5 4 9 c d 7 19 e f 11 8 step2 a b 5 4 9 c d 7 19 e f 11 8 step3 15 a b 5 4 9 c d 7 19 e f 11 8 step4 20 15 a b 5 4 9 c d 7 19 e f 11 8 step5 15 20 34 a b 5 4 9 c d 7 19 e f 11 8 step6 15 20 34 54

Huffman n树 ·如:已知某系统在通信联络中只可能出现八种字符,其概 率分别为5%,25%7%8%14%23%,3%,11%,试设计对应 Huffman树 96 或292 830959 058① ①③⑩05 ③③⑦③8 ★在人工构造比m树的过程中如果出现权值相同的情况,可能 ulman
Huffman树 • 如:已知某系统在通信联络中只可能出现八种字符,其概 率分别为5%,25%,7%,8%,14%,23%,3%,11%,试设计对应 Huffman树 3 5 8 7 8 11 15 19 14 23 29 42 25 54 96 或 3 5 7 8 15 8 11 19 14 29 23 42 25 54 96 ★在人工构造Huffman树的过程中,如果出现权值相同的情况,可能 会出现不同的结构。但若通过算法进行构造,则Huffman树唯一

Huffman树 前缀编码(又称 Huffman编码) 任一字符的编码都不是另一字符编码的前缀 如 a的编码为:0 b的编码为:100 k的编码为:101 e的编码为:11
Huffman树 • 前缀编码(又称Huffman编码) – 任一字符的编码都不是另一字符编码的前缀 – 如 a的编码为: 0 b的编码为: 100 k的编码为: 101 e的编码为: 11
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 重庆移通学院:《数据结构》课程教学资源(教程讲义,共二十八课,闫会峰).doc
- 《VC++深入详解教学》第十九讲 动态链接库(孙鑫).ppt
- 《VC++深入详解教学》第十五讲 多线程与聊天室程序的创建(孙鑫).ppt
- 《VC++深入详解教学》第十三讲 文档(孙鑫).ppt
- 《VC++深入详解教学》第十四讲 网络编程(孙鑫).ppt
- 《VC++深入详解教学》对话框(续)(孙鑫).ppt
- 《VC++深入详解教学》第二十讲 HOOK和数据库访问(孙鑫).ppt
- 《VC++深入详解教学》第十二讲 文件(孙鑫).ppt
- 《VC++深入详解教学》第十七讲 进程间通信(孙鑫).ppt
- 《VC++深入详解教学》对话框(孙鑫).ppt
- 《VC++深入详解教学》Windows程序运行原理(孙鑫).ppt
- 《VC++深入详解教学》第十讲 创建兼容DC(孙鑫).ppt
- 《VC++深入详解教学》菜单(孙鑫).ppt
- 《VC++深入详解教学》第十一讲 图形的保存和重绘(孙鑫).ppt
- 《VC++深入详解教学》文本编程(孙鑫).ppt
- 《VC++深入详解教学》第十六讲 线程同步与异步套接字编程(孙鑫).ppt
- 《VC++深入详解教学》第十八讲 ActiveX控件(孙鑫).ppt
- 《VC++深入详解教学》掌握C++(孙鑫).ppt
- 《Java程序设计》课程电子教案(PPT课件讲稿)循环.ppt
- 《Java程序设计》课程电子教案(PPT课件讲稿)第二章 结构化程序设计.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)习题讲解(闫会峰).ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)树的练习.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)模式匹配的BF算法.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)渡河问题.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第11章 结构体与共用体.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第1章 绪论(闫会峰).ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第2章 算法分析.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第3章 线性表.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第4章 栈和队列.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第5章 串.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第6章 数组与广义表.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第7章 树.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第8章 图.ppt
- 重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)线性表操作综合运行例子.ppt
- 《Linux课件》第三章 Linux中的进程管理.ppt
- 《Linux课件》SHELL编程.ppt
- 《Linux课件》第三章 Linux的安装与配置.ppt
- 《Linux课件》第四章 Linux使用基础.ppt
- 《Linux课件》第五章 Linux系统管理.ppt
- 《Linux课件》第六章 Linux网络应用.ppt