首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
admin
2016-05-11
41
问题
阅读以下说明和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)。
在Outlook中可以借助(6)的方式传送一个文件。
在Excel中,下列符号属于比较运算符的是(43)。
为将演示文稿置于另一台不带PowerPoint系统的计算机上放映,那么在放映前应该对演示文稿进行()。
企业上云就是企业采用云计算模式部署信息系统。企业上云已成为企业发展的潮流,其优势不包括()。
编译程序的作用是将高级程序语言源程序翻译为(4)。
数据处理过程中经常会发生数据出错,因此,数据校验工作非常重要。实际工作中一般都需要采取某些有效的数据校验措施,但有些做法是很少采用的。例如,在每个处理阶段结束后,要求(26)。
在PowerPoint中放映幻灯片时,如果在屏幕顶端出现了下图所示的窗口,则说明当前正在采用(59)功能。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
随机试题
多数蛋白质含氮量为
某工程网络图如下图所示,下列说法正确的是( )。
我省山海秀丽、历史悠久、文化繁荣、交通发达,旅游资源非常丰富,得天独厚。要把潜在资源优势挖掘出来、整合起来、发挥出来,形成旅游产业的新优势。要科学规划,合理布局,加强协调,市场化运作,瞄准国际先进水平,尽快打造一批富有山东特色、具有较高知名度和竞争力的旅游
Excel中,若要按某个字面对某些数据分类汇总,则需先按这个字段进行()。
近几十年来,人们发明了各种各样的药物来毒杀老鼠。可是人们发现,在一些老鼠经常出入的地方放置老鼠药的方法越来越没有效果,无论是人们将药物添加到对于老鼠来说多么美味的食物之中,老鼠都会对这些送来的“美味”置之不理。根据这一现象,得到的可能解释是:老鼠的嗅觉异常
2008年上半年贵州城市居民可支配收入为()。2008年上半年贵州城镇居民人均生活消费支出中比重最大的那部分支出比农民人均生活消费支出中比重次大的那部分支出()。
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的一项是()。
经营性资产是在生产和流通中能够为社会提供商品或劳务的资产。经营性资产的使用单位是具有法人地位的企业,其运营要以追求经济效益为原则。从会计角度看,主要指企业因盈利目的而持有,且实际也具有盈利能力的资产。根据上述定义,下列不属于“经营性资产”的是()。
简述物权请求权与占有保护请求权的区别。[北邮2020年研]
设函数其中f(x)在x=0处二阶可导f”(0)≠0,f’(0)=0,f(0)=0,则x=0是F(x)的()
最新回复
(
0
)