当前位置: 答题翼 > 问答 > 计算机类考试 > 正文
目录: 标题| 题干| 答案| 搜索| 相关
问题

阅读以下说明和C函数 填补函数代码中的空缺(1)~(5) 将解答填入答题纸的对应栏内。【说明】队列是一


阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸

的对应栏内。

【说明】

队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表

尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元

素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。

设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和

lengtb三个域变量,其中’base为队列空间的首地址,rear为队尾元素的指针,length表

示队列的长度。

define maxqstze 100

typedef struct {

QElemType *base; /*循环队列的存储空间首地址*/

int rear; /*队尾元素索引*/

int length; /*队列的长度*/

) SqQueue;

例如,容量为8的循环队列如图3-1所示,初始时创建的空队列如图3一l(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=O;

Q-’rear =O:

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;否则返回O*/

{1f‘(4),return 0;

*e =O->base[ (Q=>rear - Q->length+I+MAXQSTZE) %MAXQSIZE]

(5) ;

returnl;

} /*DeQueue*/

请帮忙给出正确答案和分析,谢谢!

参考答案
您可能感兴趣的试题
  • 阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明1】

  • 阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的代码

  • 阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列

  • 阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明1】 递归函数is_elem(

  • 阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】 某文本文件中保存

  • 阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的程序利用快