首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
admin
2016-05-11
46
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
图文混排是Word的特色功能之一,下列叙述中,不正确的是(46)。
关于ADSL接入技术,下面的论述正确的是(15)。
计算机运行一段时间后性能一般会有所下降,为此需要用优化工具对系统进行优化。系统优化的工作不包括()。
对新买的计算机需要记录保存的硬件主要参数中,不包括_______。
Windows操作系统通过(7)来判断文件是不是一个可执行文件。
若在Excel的A1单元格中输入函数“=SUM(1,12,false)”,按回车键后,则A1单元格中显示的值为________。
文件的扩展名可以说明文件类型。下面的“文件类型一扩展名”对应关系错误的是:
以下案例中,根据获取的信息,做出正确判断的是()。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
由多台计算机组成的一个系统,这些计算机之间可以通过通信来交换信息,互相之间无主次之分,它们共享系统资源,程序由系统中的全部或部分计算机协同执行,执行过程对用户透明。管理上述计算机系统的操作系统是_________。
随机试题
溃疡性结肠炎患者腹痛、腹泻明显时,应用M胆碱受体阻断药剂量过大,可能引起下列哪项并发症?
机体对结核由再感染后发生与初染不同反应的KOCH现象,其最主要机理是
患者,女性,30岁,妊娠4个月。躯干皮疹伴阵发性剧痒2周,以夜间为重。专科检查:躯干散在粟粒至绿豆大小丘疹,见线状抓痕和少许血痂。为进一步明确瘙痒的原因,首先应该进行的检查是
关于三叉神经痛的描述,不正确的是
期货公司可以将分支机构承包、租赁或者委托给他人经营管理。()
客户价值细分理论是基于客户价值进行客户细分的。()
人工成本总预算的决定因素包括()。
()是通过科学技术知识的教学和劳动实践,使学生了解物质生产的基本技术知识,掌握一定的职业技术知识和技能,养成良好的劳动态度和劳动习惯。
简述中世纪城市学校的特点。
What’stheairportlike?
最新回复
(
0
)