哈夫曼树
及其应用
问的提出
设有10个学生某门倮程的考試成的分布晶
下系所示
学生成绩数据分布情况表
分数
0~5960~6970~7980~8990~100
问题:现在要編写程序依次根据每个学生的成绩
打印出该学生的成绩等级。
学生成数据布情泥共做31500
0~5960~6970~799n
次比较
读取一个学生成绩→a
方法1
<60
no
循环十万次
打"pa
a<80
才命" genera
a<90
5%的管宝
15%监
印"good
%
30%学
印" excellent
10%学生
学生成绫数据夸布情泥共做22000
分0259606920次比软
学
读取一个学生成绩→a
方法2
循环万次
no
者命" generar
excellent
pp"bad
打中"pass
40的学监
5%帝学
15%中学宝
30%的骨监
思考:如何找到一棵最优的判断树使得编写
出来的程存的运行时间是最高敌的?
取一个学生成债→a
方法2
循环万次
no
者命" generar
excellent
pp"bad
打中"pass
40的学监
5%帝学
15%中学宝
30%的骨监
哈夫曼树及其应用
哈夫曼树的有吴撬念
⑦豬点销略长度
从恨结点沿条路橙到某结点途中所历的弧的条數
称苟啵结点的路橙长度。
②树的路橙长度
从根结点到每一个叶子结点的路径长废之和。
⑤结点的带权路长废
甚结点啪路长度诚结点上的权值的乘积称苟懷结
点的带权路长度。
树的带权路长(WPL
树中所有叶子结点的带权路长之和称树的带校
路长庋。
树的带权路径长度为
权路径长度为
3*7+3*5+1*2=46
WPL=1*7+2*5+3*2+3*4=35
25+22+2*4=36
分别带权7,5,2,
有如下几
种不同形式的
7○
a
○24
只
b
d
a
b
哈夫曼树及其应用
哈夫曼树的有吴撬念
⑤哈夫曼树的定义
设有n个叶子结点的二叉树,其第i个
叶子结点的权值为w;(i=1,2,3,n),且第i个
叶子结点的路径长度为1,则使
WPL=∑W最小的二又树称为“最优
二又树”或称为“哈夫曼树”。
哈夫曼树及其应用
2哈夫曼树的解过程
⑦向
已知n个叶子的权值为{w1,W2…wn},构
造一棵最优二叉树。
哈夫曼树及其应用
2哈夫曼树的解过程
②方法
步1:构造一个具有樑二又树的森林F={T1,T2…,Tn}
其中T是只有一个根结点且根结点的权值筠W的二叉树。
步蟓2在F中选取两樑其根结点的权值最小的二叉树,从F
中刪除这两樑树,并以这两棵二叉树为左右子树构造一棵
新的二又树添加到F中,该新的二义树的根结点的权值为
其左右狨子二叉树的根结点的权值之和。
步骤3:判断F中是吾只有唯一的一槨二又树若是,则靠
解过程结束;则,转步骤2。
数据结构-哈夫曼树及其应用 来自淘豆网m.daumloan.com转载请标明出处.