首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素
admin
2016-05-11
42
问题
阅读以下说明和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://jikaoti.com/ti/dHW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,设单元格A1中的值为100,B1中的值为200,A2中的值为300,B2中的值为400,若在A3单元格中输入函数“=SUM(A1:B2)”,按回车键后,A3单元格中的值为()。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
某工厂信息处理技术员设计了如下统计表:该表设计中包含的问题以及改进方法是______。
在PowerPoint中放映幻灯片时,如果在屏幕顶端出现了下图所示的窗口,则说明当前正在采用(59)功能。
解决网络安全问题的技术分为主动防御保护技术和被动防御保护技术两大类,__________属于被动防御保护技术。
在Word文档中某一段落的最后一行只有一个字符,若想把该字符合并到上一行,___________不能做到。
此配置允许DHCP服务器分配给客户的地址范围是什么?#/sbin/chkconfig-level3dhcpdon命令的作用是什么?
框架在网页布局中主要起什么作用?主页中定义了几个框架,分别显示哪个文档?网页中使用的数据库连接引擎是什么?连接的后台数据库文件名是什么?
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入对应栏中。[说明]在IE浏览器中输入yoyo电子邮局主页地址并回车后,网页的显示效果如下图所示。[网页中的元素说明]见下表。
随机试题
当事人对造成损害都没有过错的,可以根据实际情况,由当事人分担民事责任。()
乳突位于
操作简单、重复性强的作业活动适于改善下列哪项功能
下列选项中,属于春秋时期公布成文法活动的是()。
下列关于测算目标公司的增量现金流量方法的表述正确的有()。
下列关于股利分配政策的表述中,正确的是()。
中华人民共和国合同法自()起施行。
[2011年真题]公达律师事务所以为刑事案件的被告进行有效辩护而著称,成功率达90%以上,老余是一位以专门为离婚案件的当事人成功辩护而著称的律师。因此,老余不可能是公达律师事务所的成员。以下哪项最为确切地指出了上述论证的漏洞?
Theelectroniccomputeris_____someofthetasksthatwereonceaccomplishedbyourownbrains.
IntroductiontotheSportsStudiesDepartmentThismini-lecturegivenbytheSportsStudiesDepartmentontheUniversity’sOpen
最新回复
(
0
)