软考真题
第4题
阅读以下说明和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;
问题:4.1
【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 );

else
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;
2017��������� ��������������������������� ������������������������������������ ������������������
正确答案:
你的答案:
请先在app激活
知识点:
队列
试卷:
2017年 上半年 下午试卷 案例

笔记

请先在app激活

2019-11-08


小何

请先在app激活

2020-11-02


小何

请先在app激活

2020-11-02


答题卡
加油
纠错
得分:0