首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 Huffman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。 构造最优二叉树的Huffman算法如下: ①根据给定的n各权值{w1,w2,…,wn}构成
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 Huffman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。 构造最优二叉树的Huffman算法如下: ①根据给定的n各权值{w1,w2,…,wn}构成
admin
2014-10-11
70
问题
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
Huffman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。
构造最优二叉树的Huffman算法如下:
①根据给定的n各权值{w
1
,w
2
,…,w
n
}构成n棵二叉树的集合F={T
1
,T
2
,…,T
n
},其中每棵树T
i
中只有一个带权为w
i
的根节点,其左右子树均空。②在F中选取两棵根节点的权值较小的树作为左右子树,构造一棵新的二叉树,置新构造二叉树的根节点的权值为其左右子树根节点的权值之和。③从F中删除这两棵树,同时将新得到的二叉树加入到F中。重复②③,直到F中只剩一棵树为止。函数中使用的预定义符号如下:
#detineINT—MAX 10000
#define ENCODING—LENGTH 1000
typedef enum(rlone, 1eft一child, right一child) which;
/*标记是左孩子还是右孩子*/
typedef char Elemtype;
typedef struct TNode{//Huffman树节点
Elemtype letter;
int weight; //权值
int parent; //父节点
Which Sigh;
char*code; //节点对应编码
)HTNode,*HuffmanTree;
int n;
char coding[50];//储存代码
【函数】
void Select(HuffmanTree HT,int end,int*s1,int*s2)
/*在0~END之问,找出最小和次小的两个节点序号,返回s1、s2*/
{
int i;
int mini=INT_MAX;
int min2=INT_MAX;
for(i=0;i<=end;i++){/*找最小的节点序号*/
if((1)&&(HT
.weight
*s1=i;
minl=HT
.weight;
}
}
for(i=0;i<=end;i++){/*找次小节点的序号*/
i f((HT
.parent==0)&&((2))
&&(min2 >HT
.weight)){
*S2:i;
min2=HT
.weight:
}
}
}
void HuffmanTreecrea七(HuffmanTree&HT)/*建立HuFFMAN树*/
{
int i;
int m=2*n一1;
int S1,S2;
for(i=n;i
Select((3));
HT[S1].parent=i:
HT[s2].parent=i;
HT[S1].Sigh=1eft_chiid;
HT[s2].Sigh=right—chiid;
HT
.weight= (4);
}
void HuffmanTreeEnc。ding(char sen[],HuffmanTree HT)
{ /*将句子进行编码*/
int i=0;
int j;
while(sen
!=’\0’){
for(J=0;j
i f(HT[j].1etter==sen
)(/*字母匹配则用代码取代*/
strcat(coding, (5));
break;
}
}
i++:
if(sen
==32)i++;
printf(“\n%s”,coding);
}
选项
答案
(1)HT[i].parent==0 (2)*s1!=i (3)HT,i—1,&s1,&s2 (4)HT[s1].weight+HTIs2].weight (5)HT[j].code
解析
根据算法说明的②可知是根据根节点权值选择,即只考察根节点,而根节点对应~parent等于0,故空(1)应填HT
.parent=0。此答案可由空(2)处的i涤件容易得出。至于空(2),此处是找次小的,自然需要排除最小的,S1记录了最小树的下标,故填*s1!=i。仔细参照Select~数的定义,容易得出空(3)答案。应填“HT,i—l,&sl,&s2”,要注意的是后两个参数需要传递地址,因形参是指针。根据算法说明的②,“置新构造二叉树的根节点的权值为其左右子树根节点的权值之和”,而此处HT
的左右子树的根节点分别为HT[s1]和NHT[s2],所以空(4)应填HT[s1].weight+HT[s2].weight。由注释“字母匹配则用代码取代”可知,此处是将对应代码加到coding中,而节点的code字段存储了节点对应编码,故空(5)应填HT[j].code。
转载请注明原文地址:https://www.kaotiyun.com/show/NaDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
若系统中有4个互斥资源R,当系统中有2个进程竞争R,且每个进程都需要i个R(i≤3)时,该系统可能会发生死锁的最小i值是________。
甲怀疑乙发给他的信息已遭人篡改,同时怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲、乙需要找一个双方都信任的第三方,即______来签发数字证书。
若计算机字长为32,则采用补码表示的整数范围为______。
虚拟存储技术使_______密切配合来构成虚拟存储器。
在由L2TP构建的VPN中,主要由①和②两种类型的服务器构成。1.将图5-1中①和②处空缺名称填写在答题纸的相应位置。2.简要说明两种服务器的主要作用。某路由器(在图5-1中没有标出)的部分配置信息如下所示,请解释其中标有下划线部分的含
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
将图2-1中(1)和(2)空缺名称填写在应的位置。在本质上,ADSL采用的什么多路复用方式?
阅读下列说明,回答问题1至问题6。[说明]某公司的业务员甲与客户乙通过Internet交换商业电子邮件(以下简称为“邮件”)。为保障邮件内容的安全,双方约定采用安全电子邮件技术对邮件内容进行加密和数字签名。安全电子邮件技术的实现原理如图4
阅读以下关于Linux网关安装和配置过程的说明,回答问题1至问题5。【说明】当局域网中存在大量计算机时,根据业务的不同,可以将网络分成几个相对独立的子网。图12-2是某公司子网划分的示意图,整个网络被均分为销售部和技术部两个子网,子网之间通过一台
公司内部IP地址分配如下:若调换上面配置中的第3条和第4条规则的顺序,则__________。备选答案:A.安全规则不发生变化B.财务服务器将受到安全威胁C.Web服务器将受到安全威胁D.内网用户将无法
随机试题
以下属于流动资产周转情况的指标主要有
下列属于处方前记的是
患者,男性,62岁。自觉牙龈出血、牙齿松动半年余。检查:CI-S:3,多个牙齿松动度在Ⅰ~Ⅱ度之间。牙龈红肿,探诊易出血。牙周袋深3~5mm。如该患者口腔内有种植体修复,则种植牙定期洁治的间隔时间最好为
我国法的形式主要包括宪法、法律、行政法规、地方性法规、行政规章等。下列属于法律的有()
补偿性余额是银行要求借款人在银行中保持按贷款限额或实际借用额的一定百分比计算的最低存款余额,通常比例为()。
判断心理问题的严重程度,需要了解()方面的内容。(2003年8月三级真题)
“资本害怕没有利润或者利润太少,就像自然界害怕没有空气一样。一旦有适当的利润,资本就胆大起来。如果有10%的利润,它就保证到处被使用;有20%的利润,它就活跃起来;有50%的利润,它就铤而走险;为了1000%的利润,它就敢于践踏一切人间法律;有300%的利
算法分析的目的是()。
某汉字的国际码是5650H,它的机内码是
AudienceofWritingAudienceisaveryimportantconceptforwriting.Youneedtoanalyzeyouraudienceintermsofthefollo
最新回复
(
0
)