首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 堆数据结构定义如下。 对于n个元素的关键字序列{a1,a2……,an},当且仅当满足下列关系时称其为堆: 在一个堆中,若堆项元素为最大元素,
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 堆数据结构定义如下。 对于n个元素的关键字序列{a1,a2……,an},当且仅当满足下列关系时称其为堆: 在一个堆中,若堆项元素为最大元素,
admin
2018-07-25
36
问题
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
堆数据结构定义如下。
对于n个元素的关键字序列{a
1
,a
2
……,a
n
},当且仅当满足下列关系时称其为堆:
在一个堆中,若堆项元素为最大元素,则称为大顶堆;若堆顶元素为最小元素,则称为小项堆。堆常用完全二叉树表示,图8.11是一个大顶堆的例子。
堆数据结构常用于优先队列中,以维护由一组元素构成的集合。对应于两类堆结构,优先队列也有最大优先队列和最小优先队列,其中最大优先队列采用大顶堆,最小优先队列采用小顶堆。以下考虑最大优先队列。
假设现已建好大项堆A,且已经实现了调整堆的函数heapify(A,n,index)。
下面将C代码中需要完善的3个函数说明如下。
(1)heapMaximum(A):返回大顶堆A中的最大元素。
(2)heapExtractMax(A):去掉并返回大顶堆A的最大元素,将最后一个元素“提前”到堆顶位置,并将剩余元素调整成大顶堆。
(3)maxHeapInsert(A,key):把元素key插入到大顶堆A的最后位置,再将A调整成大顶堆。
优先队列采用顺序存储方式,其存储结构定义如下:
#define PARENT(i)i/2
typedef struct array {
int *int_array;//优先队列的存储空间首地址
int array_size;//优先队列的长度
int capacity;//优先队列存储空间的容量
}ARRAY;
【C代码】
(1)函数heapMaximum
int heapMaximum(ARRAY*A){return_____(1);}
(2)函数heapExtractMax
int heapExtractMax(ARRAY *A){
int max;
max=A->int array[0];
____(2);
A->array size--;
Heapify(A,A->array size,0);//将剩余元素调整成大顶堆
return max;
}
(3)函数maxHeapInsert
int maxHeapInsert(ARRAY*A,int key){
int i,*p;
if(A->array-size==A->capacity){//存储空间的容量不够时扩充空间
p=(int*)realloc(A->int array,A->capacity*2*sizeof(int));
if(!p)return-1;
A->int_array=p;
A->capacity=2*A->capacity;
}
A->array_size++:
I=_______(3);
while(i>0&&_____(4){
A->int array
=A->int array[PARENT(i)];
I=PARENT(i);
}
___(5);
return 0;
}
根据以上说明和C代码,填充C代码中的空(1)~(5)。
选项
答案
(1)A->int_array[0] (2)A->int_array[0]=A->inc_array[A->array_size-1] (3)A->array_size-1 (4)key>A->int_array[PARENT(i)] (5)A->int_atray[i]=key
解析
heapMaximum(A)函数返回大顶堆A中的最大元素。大项堆A的优先队列采用顺序存储方式,指针int array指向优先队列的存储空间首地址,其内容为大项堆A中的最大元素,因此空(1)处应填入A->int_array[0]。
heapExtractMax(A)的功能是去掉并返回大顶堆A的最大元素,将最后一个元素“提前”到堆项位置,并将剩余元素调整成大顶堆。可知空(2)处所填的语句应该是将最后一个元素的值存储在原最大元素所在的位置,即存储空间的首地址。
maxHeapInsert(A,key)的功能是把元素key插入大顶堆A的最后位置,再将A调整成大项堆。在将A调整成大顶堆的过程中需要用到上滤策略。maxHeaplnsert(A,key)函数中,首先用i指示元素key的位置,则i=array_size-1;然后将im_array
与其父节点进行比较,如果大于其父节点的值,将两者的位置进行交换,key的位置i=PARENT(i);往上比较,直至key的值不大于其父节点的值。
转载请注明原文地址:https://jikaoti.com/ti/HFi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。根据试题的描述信息分析,在最理想的情况下,需要多少天才能完成此网管软件开发任务?如果按保守的估计,则需要多少天才可完成此开发任务?(请列出简要的计算过程)
ADSL技术可以充分利用现有铜线网络,只要在用户线路两端加装ADSL设备即可为用户提供服务。请从以下术语选择适当的编号,将图5-9所示的拓扑结构中(1)~(4)空缺处的名称填写完整。【供选择的答案】A.程控交换机B.二层交换机
在配置Windows2003VPN服务器时,在管理工具中打开“路由和远程访问”,接着在所列出的本地服务器上单击鼠标右键,从弹出菜单中选择“配置并启用路由和远程访问”。在以下“路由和远程访问服务器安装向导”界面中(见图1-14),选择(1)单选按钮,接着
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。目前在使用ADSL访问Internet时,要不要收取电话费?
某单位拟建立一个Intranet,建立自己的Web服务器、DNS服务器,E-mail服务器和内部业务服务器,有一批客户机联网,要求这些机器有的可以到Internet上,只允许访问自己的Web服务器。请你做出规划,解决如下问题。
请用蒙特卡罗错误随机植入模型估算出被测程序模块中将会遗留下多少个未被发现的隐藏错误。请简要列出计算式子及计算过程。信息部门的吴总工程师向谢工程师建议了另一种测试方案作为“错误随机植入”测试方法的补充。即由A和B两组测试人员同时相互独立地测试同一份宽带路
由于面向3G移动电话的电子商务网站看不到用户进行销售服务,因此,对用户身份进行认证是必要。通常,在Internet中进行电子签名的认证过程如下:①文件的发送者将要发送的文件生成(1);②用发送者的(2)对摘要加密后,将其添加到文件中;
阅读以下关于FTTC宽带接入Internet的技术说明,根据要求回答问题1至问题5。【说明】光纤接入网(OpticalAccessNetwork,OAN)是以光纤为传输媒体,并利用光波作为光载波传送信号的接入网。FTTC+LAN是实现居民宽带
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?为了保证FTP服务器的数据安全,每个在读取文件时,只能读取和执行相关文件,请问在
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如想将某用户在设咸FTP服务器管理员,其用户名称不变,请问在“Privileg
随机试题
微小病变性肾小球肾炎,临床上表现为
社区中开展自我保健最强调
中风脱证的临床表现除哪项外均是
女,35岁。确诊系统性红斑狼疮,经泼尼松50mg/d治疗1个月后病情稳定,随后激素逐渐减量,至泼尼松25mg/d时出现发热,体温38.4℃。对鉴别发热原因意义不大的检查是()
汉地佛教寺庙中轴线上的主要建筑从前到后有()。
现代教育与传统教育的根本区别在于()。
如图3所示,在直角△ABC中,∠ACB=90°,DE过点C且平行于AB,若∠BCE=35°,则∠A的度数为()。
黑格尔说:“凡是现实的都是合乎理性的,凡是合乎理性的都是现实的。”这句话应理解为
ResearchersfromtheuniversitiesofIstanbulandHawaiihopethetechniquecanleadtonewwaystoproducemedicines.Aspar
Johnisverydiligent,buthispayisn’tsufficientenoughforhiswork.
最新回复
(
0
)