首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
admin
2016-05-11
56
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
在域名地址www.rkb.gov.cn中,“cn”属于______。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
以下关于操作系统中回收站的叙述,不正确的是____________。
Windows XP的许多应用程序的“文件”菜单中,都有“保存”和“另存为”两个命令。以下对这两个命令的叙述,正确的是(36)。
在Access2007中,若要想查询所有姓名为2个汉字的学生记录,应在准则中输入______。
在Windows7系统运行时,用户为了获得联机帮助,可以直接按功能键(24)________________。
某学校一个教师可以讲授多门课程,一门课程也可以由多个教师讲授,则教师与课程之间的关系类型为()。
对一批数据进行质量分析时,需要检查的问题一般不包括_______。
解决网络安全问题的技术分为主动防御保护技术和被动防御保护技术两大类,__________属于被动防御保护技术。
框架在网页布局中主要起什么作用?主页中定义了几个框架,分别显示哪个文档?假设连接的数据记录集当前指向的记录如下:写出以下ASP代码经过IIS服务器解释后的结果。<tdalign-"center"width="20%"><ahref
随机试题
根据报警信息的类型和核实对象所在建筑中的位置,迅速做好必要的准备工作,及时到现场进行信息核实。对于()信息,如果火灾探测器等触发器件所在建筑区域安装了视频监控设备,则应先通过查看该区域的监控视频来核实火灾发生的情况。
A.口腔B.胃C.十二指肠D.空肠E.回肠酒精进入人体后,首先吸收的部位是【】
FSH、LH均<5U/L见于FSH升高较LH升高显著,故FSH/LH>1见于
从现场采样到实验室分析需要一段时间,由于物理化学变化和生物作用,水样中的各组分可能发生改变,在下列各项中,要求在现场测定的是
Frenchay评定量表是用于评定
敷设管道光、电缆时,可以用作润滑剂的有()。
一、注意事项1.申论考试是对考生阅读理解能力、综合分析能力、提出和解决问题能力以及文字表达能力的测试。2.仔细阅读给定资料,按照后面提出的“申论要求”依次作答。二、给定资料1.2008年夏天,各地的高考阅卷工作结束之后,新一批大
Itusedtobethatifyouwantedtotravel,youhadtoplanforalongbusortrainride.Butthecarchangedallthat.Thougha
Therehavebeengreatadvancesinthe______ofcancer.
Today,airtravelisfarsaferthan【B1】______acaronabusymotorway.Butthereisadangerthatgrowseveryyear.Fromthemom
最新回复
(
0
)