首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
简单队列是符合先进先出规则的数据结构,下面用不含有头结点的单向循环链表表示简单队列。 函数EnQueue(Queue*Q,KeyType new_elem)的功能是将元素new—elem加入队尾。 函数DeQueue(Queue*Q,Key
简单队列是符合先进先出规则的数据结构,下面用不含有头结点的单向循环链表表示简单队列。 函数EnQueue(Queue*Q,KeyType new_elem)的功能是将元素new—elem加入队尾。 函数DeQueue(Queue*Q,Key
admin
2018-04-19
63
问题
简单队列是符合先进先出规则的数据结构,下面用不含有头结点的单向循环链表表示简单队列。
函数EnQueue(Queue*Q,KeyType new_elem)的功能是将元素new—elem加入队尾。
函数DeQueue(Queue*Q,KeyType*elem)的功能使将非空队列的队头元素出队(从队列中删除),并通过参数带回刚出队的元素。
用单向循环链表表示的队列如图4.1所示。
队列及链表结点等相关类型定义如下:
enum{ERROR,OK);
typedef int KeyType;
typedef struct QNode{
KeyType data;
struct QNode *next;
}QNode, *LinkQueue;
typedef struct{
int Size;
LinkQueue rear;
}Queue;
【C函数】
int EnQueue(Queue*Q,KeyType new_elem)
{ //元素new elem入队列
QNode*p;
P=(QNode*)malloc(sizeof(QNode));
if(!P)
return ERROR;
P一>data=new_elem;
if(Q一>rear) {
P一>next=Q=>rear一>next;
(1)_________;
}
e1Se
P一>next=P;
(2)_________;
Q->siZe++;
return OK;
}
int DeQueue(Queue *Q,KeyType*elem)
{ //出队列
QNode*p;
if(0=Q一>size) //是空队列
return ERROR;
P=(3)_________; //令P指向队头元素结点
*elem=P一>data;
Q一>rear->next=(4)_________; //将队头元素结点从链表中去除
if((5)_________) //被删除的队头结点是队列中唯一结点
Q一>rear=NULL; //变成空队列
free(p);
Q一>size一一;
return OK;
}
选项
答案
(1)Q->rear->next=p (2)Q->rear=p (3)Q->rear->next (4)p->next或Q->rear->next->next (5)Q->rear=p或Q->size=1或其等价形式
解析
本题考查数据结构的实现、C程序运算逻辑与指针参数的应用。
队列是先入先出的线性数据结构。元素入队列时需要将其加入队尾,元素出队列时需要将其从队头删除。根据说明,队列采用单向循环链表表示且不设头结点,只设置指向队尾结点的指针。
显然,队列为空时,队尾指针也为空。因此,当队尾指针为空时需要将新结点的指针域设置为指向结点自己,否则,需要通过“Q->rear->next”获得队头元素结点的指针,并将新结点的指针域设置为该值,再将新结点链接在原队尾结点之后,因此空(1)处应填入“Q->rear->next=p”。新元素加入队列后队尾指针就要更新,因此空(2)处应填入“Q->rear=p”。
根据注释,空(3)所在语句需要获得队头元素所在结点的指针并用p表示,即空(3)应填入“Q->rear->next”。空(4)需要完成队头元素的出队列处理,也就是将队头元素的前驱结点的指针域(Q->rear->next)设置为指向队头元素的后继元素结点,表示
为“Q->rear->next=p->next"或“Q->rear->next=Q->rear->next->next”。
进行出队列操作时的特殊情况是队列中唯一的元素被删除,此时需要修正队尾指针,空(5)所在语句即完成此处理,该空应填入“Q->rear=p”或“Q->size=1”。
转载请注明原文地址:https://kaotiyun.com/show/z2jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
双击某个非可执行程序的文件名将(24)。
下列操作中______可以随意改变窗口大小。
在Access中,查询“学生”数据表的所有记录及字段的SQL语句是______。
在Exeel2010中,___________可以对A1单元格数值的小数部分进行四舍五入运算。
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。制作交叉双绞线(一端按EIA/TIA568A线序,另一端按EIA/TIA568B线序)时,其中一端的线序如图1-2(a)所示,另一端线序如图1—2
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。为满足公司要求,通常选用什么类型的信息插座?
从表1-1中为图1-1中(1)~(4)处选择合适设备名称(每个设备限选一次)。表1-2是路由器A上的地址变换表,将图1-2中(8)~(11)处空缺的信息填写在相应的位置。
阅读以下说明,回答问题1至问题5,将解答填入对应栏内。[说明]某大学要拟建一个小型局域网,如图10-5所示,PCI、PC3、PC5的IP地址分别为10.244.80.2,10.244.80.3,10.244.80.4子网掩码是255.255
[说明]请根据网页显示的效果图,将HtML文本(n)处的解答填写在相应的解答栏内。[上图网页中的元素说明][HTML文档代码]<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML
随机试题
雕塑作品:《龙门石窟》
乳糖操纵子的顺式作用元件有
某甲预谋进行抢劫银行的犯罪活动,先抢夺了某派出所干警某乙的手枪一支,然后又从某厂保卫处盗窃子弹70余发,对某甲的行为定性错误的有________。
“管中管”预制保温管的保温材料的耐温在()以下。
某企业年排废水600万吨,废水中氨氮浓度为20mg/L,排入Ⅲ类水体,拟采用的废水处理方法氨氮去除率为70%,Ⅲ类水体氨氮浓度的排放标准为15mg/L。该企业废水氨氮排放总量控制建议指标为()t/a。
城市与乡村的首要差别主要体现在()的集中程度上。
对于系统故障风险的防范对策有()。
首次公开发行公司在发行前,必须通过因特网以网上直播的方式,向投资者进行公司推介。()
在固定资产模块中,属于区分每一项固定资产的唯一标识的是()。
EnglishSynonymsEnglishhasthelargestvocabularyandthemostsynonymsofalllanguagesintheworld.Thisrichnessisd
最新回复
(
0
)