首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
admin
2016-05-11
89
问题
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。
设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和length三个域变量,其中,base为队列空间的首地址,rear为队尾元素的指针,length表示队列的长度。
#define MAXQSIZE 100
typedef struct {
QElemType*base; /*循环队列的存储空间首地址*/
int rear; /*队尾元素索引*/
int length; /*队列的长度*/
}SqQueue;
例如,容量为8的循环队列如图3-1所示,初始时创建的空队列如图3-1(a)所示,经过一系列的入队、出队操作后,队列的状态如图3-1(b)所示(队列长度为3)。
下面的C函数1、C函数2和C函数3用于实现队列的创建、插入和删除操作,请完善这些代码。
【C函数1】创建一个空的循环队列。
int InitQueue(SqQueue*Q)
/*创建容量为MAXQSIZE的空队列,若成功则返回1;否则返回0*/
{ Q一>base=(QElemType*)malloc(MAXQSIZE* (1) );
if(!Q->base)return 0;
Q一>length=0;
Q->rear=0;
return 1;
}/*InitQueue*/
【C函数2】元素插入循环队列。
int EnQueue(SqQueue*Q,QElemType e)/*元素e入队,若成功则返回1;否则返回0*/
{ if(Q->length>=MAXQSIZE)return 0;
Q一>rear= (2) ;
Q->base[Q一>rear]=e;
(3) ,
return 1;
)/*EnQueue*/
【C函数3】元素出循环队列。
int DeQueue(SqQueue*Q,QElemType*e)
/*若队列不空,则删除队头元素,由参数e带回其值并返回1;否则返回0*/
{ if( (4) )return 0;
*e=Q一>base[(Q->rear—Q->length+1+MAXQSIZE)%MAXQSIZE];
(5);
return 1;
}/*DeQueue*/
选项
答案
(1)sizeofi(QElemType) (2)(Q->rear+1)%MAXQSIZE或等价表示 (3)Q->length++ 或Q->length=Q->length+1或等价表示 (4)Q->length<=0 或Q->length=0或等价表示 (5)Q->length一 或Q->length=Q->length一1或等价表示
解析
本题考查数据结构实现和C语言基本应用。
队列是一种基本的数据结构,其基本操作有初始化、判断是否为空、入队列和出队列等。
循环队列是一种采用顺序存储结构实现的队列,其特点是将队列存储空间的首尾单元在逻辑上连接起来,从而得到一个环形结构的队列空间。
在循环队列的类型定义SqQueue中,指针成员base存放队列空间的首地址,存储空间应在队列的初始化操作中实现,对应的语句如下:
Q一>base= (QElemType*)malloc(MAXQSIZE* (1) );
由于InitQueue(SqQueue*Q)的形参为指向结构体的指针,因此队列的参数可表示为“Q->base、Q->rear、Q->length”或“(*Q).base、(*Q).rear、(*Q).length”,由于队列元素类型为QElemType、队列容量为MAXQSIZE,因此空(1)处应填入“sizeof(QElemType)”。
入队列操作由EnQueue(SqQueue*Q,QElemType e)实现。由于循环队列空间的容量为MAXQSIZE(也就是队满条件为“Q->length>=MAXQSIZE”),因此元素入队列时,需先判断是否队满,在队列中有空闲单元的情况下才能进行入队列操作。其次需确定新元素在队列空间中的位置,从图3—1(b)中可以看出,Q->rear指出了当前队尾元素,新元素应放入下一个位置,结合队列环形空间的要求,空(2)处应填入“(Q->rear+1)%MAXQSIZE”或其等价形式。通过“Q->base[Q->rear]=e”将元素加入队列后,队列长度增加了,因此空(3)处应填入“Q->length++”或其等价形式。
出队列操作由DeQueue(SqQueue*Q,QElemType*e)实现。元素出队列时,需要判断队列是否为空,显然,队列长度为0就直接表示了队空,因此空(4)处应填入“Q->length=0”或其等价形式,空(5)处应填入“Q->length--”或其等价形式。
转载请注明原文地址:https://kaotiyun.com/show/k9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某年级两个班举行了一次数学统考,一班(共30人)的平均成绩为70分,二班(共 20人)的平均成绩为75分,则该年级的平均成绩为(65)分。
数据录入工作有两个指标:录入速度和错误率。一般而言,数据录入员在录入大批数据时,录入速度会(65),错误率会(66)。66
计算机使用一段时间后发现,系统启动时间变长,系统响应迟钝,应用程序运行缓慢,为此,需要进行系统优化。系统优化工作不包括___________。
在Word2003中,对当前正在编辑的文档内容进行多次剪切操作后关闭该文档,则剪贴板中的内容为______。
小张为本企业录入一篇领导讲话文稿。文稿中引用了该企业2008年的销售额和各产品的利润等数据。小张考虑到目前是2010年,从信息的实效性出发,决定对文稿中的这部分内容进行处理,则______做法最为恰当。
对同一事物进行多次测量所得的结果可能不一致,这是幽测量误差所致。利用______可使误差基本抵消。
计算机在接通电源后,系统首先由(41)程序对内部每个设备进行测试。
数据类型有多种,可以归纳为两大类:字符型数据(不具计算能力)和数值型数据(可直接参与算术运算)。以下数据类型中,________属于数值型数据。
阅读以下说明,回答问题1至问题4。说明某公司A楼高40层,每层高3.3米,同一楼层内任意两个房间最远传输距离不超过90米,A楼和B楼之间距离为500米,需在整个大楼进行综合布线,结构如图1-1所示。为满足公司业务发展的需要,要求为楼内客户机提供数
从网络连接的角度来看,代理服务器承担了何种网络设备的功能?请给出下列代理服务器上的外网卡配置参数(配置界面如图2所示)。子网掩码:(1);默认网关:(2)。
随机试题
简述设立代理报关企业应具备的条件。
我国目前大部分地区的医疗保险实行的支付方式属于
王某,男,43岁,哮病发作,喉中哮鸣有声,胸膈烦闷,呼吸急促,喘咳气逆,咳痰色黄或黄白相兼,烦躁,发热,恶寒,无汗,身痛,口于欲饮,大便偏干,舌尖边红,苔白腻黄,脉弦紧。本病例的适宜治法是
A.铁锈色痰B.砖红色胶冻样痰C.有恶臭味的痰D.脓血痰E.大量白色泡沫状痰金黄色葡萄球菌肺炎表现为
下列哪项不可作为糖尿病的诊断依据?
临床常用的诊断早期妊娠的特异性指标是
甲对乙享有10万元到期债权,乙无力清偿,且怠于行使对丙的15万元债权,甲遂对丙提起代位权诉讼,法院依法追加乙为第三人。一审判决甲胜诉,丙应向甲给付10万元。乙、丙均提起上诉,乙请求法院判令丙向其支付剩余5万元债务,丙请求法院判令甲对乙的债权不成立。关于二审
下列属于各单位预算职权的有()。
根据2018年年底修订的《中华人民共和国公务员法》,下列有关公务员交流制度的表述,正确的是()。
July21,2006DearSirorMad.am,Todaywehavereceivedyourbillfor150engravedcrystalvaseswhichyousentustheothe
最新回复
(
0
)