2025信息系统项目管理师视频教程
128151 人在学
课课家小编为大家整理了2017上半年程序员考试案例分析真题,以下为第四部分。
试题四(共15分)
阅读以下说明和C函数,填补函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
简单队列是符合先进先出规则的数据结构,下面用不含有头结点的单向循环链表表示简单队列。
函数enqueue(queue*q,KeyType new_elem)的功能是将元素new_elem加入队尾。
函数Dnqueue(queue*q,KeyType*elem)的功能使将非空队列的队头元素出队(从队列中删除),并通过参数带回刚出队的元素。用单向循环链表表示的队列如图4-1所示。
图4-1单向循环链表表示的队列示意图
队列及链表结点等相关类型定义如下:
enum{errOr,OK};
typedef int KeyType;
typedef struct qNode﹛
KeyType data;
Struct qNode*next;
﹜qNode,*Linkqueue;
Typedef struct﹛
int size;
Link:queue 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;
();
﹜
else
P->next=p;
﹙﹚;
q->size++;
return OK;
﹜
int Dequeue(queue*q,KeyType*elem)
﹛//出队列
qNode*p;
if(0==q->size)//是空队列
return errOr;
P=();//令p指向队头元素结点
*elem=p->data;
q->rear->next=();//将队列元素结点从链表中去除
if(())//被删除的队头结点是队列中唯一结点
q->rear=NULL//变成空队列
free(p);
q->size--;
return OK;
﹜
>>>>返回目录:2017上半年程序员考试案例分析真题(汇总)
想要报考2018年软考的朋友现在就可以开始备考了,可以报名课课家软考学院,课课家软考学院含有软考各科目赠送考试:辅导教材、历年真题、考前冲剌资料、在线模拟测试题库,还有老师专属答疑指导等,帮助大家顺利通过考试。
>>>>>>点击进入软考报名专题