数据结构算法之树的应用.pptx
《数据结构算法之树的应用.pptx》由会员分享,可在线阅读,更多相关《数据结构算法之树的应用.pptx(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 设有100个学生某门课程的考试成绩的分布如下表所示:一、问题的提出(判断树)分数05960697079 808990100学生比例数0.050.150.400.300.10学生成绩数据分布情况表学生成绩数据分布情况表*问题:问题:现在要编写程序依次根据每个学生的成绩现在要编写程序依次根据每个学生的成绩打印出该学生的成绩等级。打印出该学生的成绩等级。第1页/共36页分数05960697079 808990100学生比例数0.050.150.400.300.10学生成绩数据分布情况表学生成绩数据分布情况表方法方法1:a60打印打印badyesa70no打印打印passyesa80no打印打印ge
2、neralyesa90no打印打印goodyes打印打印excellentno5%的的学生学生15%的的学生学生40%的的学生学生30%的的学生学生10%的的学生学生共做315次比较读取一个学生成绩读取一个学生成绩a循环一百次循环一百次第2页/共36页分数05960697079 808990100学生比例数0.050.150.400.300.10学生成绩数据分布情况表学生成绩数据分布情况表方法方法2:a80打印打印badyesa90noyesnoa70yesnoa60yesno打印打印“good打印打印excellent打印打印pass打印打印general5%的的学生学生15%的的学生学生4
3、0%的的学生学生30%的的学生学生10%的的学生学生共做220次比较读取一个学生成绩读取一个学生成绩a循环一百次循环一百次第3页/共36页思考:思考:如何找到一棵如何找到一棵最优的最优的判断树使得编写判断树使得编写出来的程序的运行时间是最高效的?出来的程序的运行时间是最高效的?第4页/共36页1.哈夫曼树的有关概念 结点的路径长度:从根结点沿某条路径到某结点途中所经历的边的条数称为该结点的路径长度。二、哈夫曼树及其应用 树的路径长度:从根结点到每一个叶子结点的路径长度之和。树的带权路径长度(WPL):树中所有叶子结点的带权路径长度之和称为树的带权路径长度。结点的带权路径长度:某结点的路径长度与
4、该结点上的权值的乘积称为该结点的带权路径长度。第5页/共36页1.哈夫曼树的有关概念 二、哈夫曼树及其应用实例实例:已知某二叉树的四个叶子结点已知某二叉树的四个叶子结点 a,b,c,d分别带权分别带权7,5,2,4,则可构造出有如下几,则可构造出有如下几种不同形式的二叉树:种不同形式的二叉树:aaa777b5b5c2d4c2d4b5c2d 4树的带权路径长度为:WPL=2*7+2*5+2*2+2*4=36树的带权路径长度为:WPL=2*4+3*7+3*5+1*2=46树的带权路径长度为:WPL=1*7+2*5+3*2+3*4=35第6页/共36页哈夫曼树的定义:二、哈夫曼树及其应用 设有设有n
5、个叶子结点的二叉树,其第个叶子结点的二叉树,其第i个个叶子结点的权值为叶子结点的权值为wi(i=1,2,3,.n),且第且第i个个叶子结点的路径长度为叶子结点的路径长度为li,则使则使WPL=wi*li最小的二叉树称为最小的二叉树称为“最优最优二叉树二叉树”或称为或称为“哈夫曼树哈夫曼树”。i=1n第7页/共36页2.哈夫曼树的求解过程 二、哈夫曼树及其应用问题:问题:已知已知n个叶子的权值为个叶子的权值为w1,w2,.wn,构,构造一棵最优二叉树。造一棵最优二叉树。第8页/共36页2.哈夫曼树的求解过程 二、哈夫曼树及其应用方法:方法:步骤步骤1:构造一个具有构造一个具有n棵二叉树的森林棵二
6、叉树的森林F=T1,T2,.,Tn,其中,其中Ti是只有一个根结点且根结是只有一个根结点且根结点的权值为点的权值为wi的二叉树。的二叉树。步骤步骤2:在在F中选取两棵其根结点的权值最小的二叉树,从中选取两棵其根结点的权值最小的二叉树,从F中删除这两棵树,并以这两棵二叉树为左右子树构造一中删除这两棵树,并以这两棵二叉树为左右子树构造一棵新的二叉树添加到棵新的二叉树添加到F中,该新的二叉树的根结点的权值中,该新的二叉树的根结点的权值为其左右孩子二叉树的根结点的权值之和。为其左右孩子二叉树的根结点的权值之和。步骤步骤3:判断判断F中是否只有唯一的一棵二叉树。若是,则求中是否只有唯一的一棵二叉树。若是
7、,则求解过程结束;否则,转步骤解过程结束;否则,转步骤2。第9页/共36页2.哈夫曼树的求解过程 二、哈夫曼树及其应用实例:已知有实例:已知有5个叶子结点的权值分别为:个叶子结点的权值分别为:5,15,40,30,10;试画出一棵相应的哈夫曼树。;试画出一棵相应的哈夫曼树。a40b30c5d10e1515第10页/共36页2.哈夫曼树的求解过程 二、哈夫曼树及其应用实例:已知有实例:已知有5个叶子结点的权值分别为:个叶子结点的权值分别为:5,15,40,30,10;试画出一棵相应的哈夫曼树。;试画出一棵相应的哈夫曼树。a40b30c5d10e1515第11页/共36页2.哈夫曼树的求解过程 二
8、、哈夫曼树及其应用实例:已知有实例:已知有5个叶子结点的权值分别为:个叶子结点的权值分别为:5,15,40,30,10;试画出一棵相应的哈夫曼树。;试画出一棵相应的哈夫曼树。a40b30c5d10e151530第12页/共36页2.哈夫曼树的求解过程 二、哈夫曼树及其应用实例:已知有实例:已知有5个叶子结点的权值分别为:个叶子结点的权值分别为:5,15,40,30,10;试画出一棵相应的哈夫曼树。;试画出一棵相应的哈夫曼树。a40b30c5d10e15153060第13页/共36页2.哈夫曼树的求解过程 二、哈夫曼树及其应用a40b30c5d10e15153060100第14页/共36页3.哈
9、夫曼编码 二、哈夫曼树及其应用等长等长编码:编码:以英文字符编码为例,一般英文字符编码是采以英文字符编码为例,一般英文字符编码是采用用7位二进制数编码(位二进制数编码(ASCII码)。码)。7位二进制数位二进制数可以为可以为27个不同的英文字符编码。个不同的英文字符编码。下面为讨论问题简单起见,假设被编码的字符下面为讨论问题简单起见,假设被编码的字符集中只有集中只有4个(即个(即22个)不同字符,故只要两位二个)不同字符,故只要两位二进制数即可完成编码。进制数即可完成编码。设这设这4个不同的字符为个不同的字符为A,B,C,D,则可进,则可进行等长编码如下:行等长编码如下:第15页/共36页3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 应用
限制150内