下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

2017上半年程序员考试案例分析真题(4)

作者:课课家教育     来源: http://www.kokojia.com点击数:766发布时间: 2018-05-13 21:24:34

标签: 2017上半年程序员考试案例分析真题2017上半年程序员考试真题程序员真题

软考,您想通过吗?一次通过才是硬道理

       课课家小编为大家整理了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年软考的朋友现在就可以开始备考了,可以报名课课家软考学院,课课家软考学院含有软考各科目赠送考试:辅导教材、历年真题、考前冲剌资料、在线模拟测试题库,还有老师专属答疑指导等,帮助大家顺利通过考试。

 >>>>>>点击进入软考报名专题

赞(23)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程