题目

阅读以下说明和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*/

答案
查看答案
相关试题
最新解答的试题
男性,72岁。有高血压病10年,长期服用降压药物,平日血压控制在130-145/70-80mmHg。日常活动正常。2月来无诱因出现发作性心悸,持续3-8小时右可自行缓解。3小时前症状再次发作,心电图提示心房颤动。目前该患者最容易出现的并发症是:

A.心力衰竭B.肺栓塞C.脑栓塞D.猝死
慢性咳嗽的一线检查有哪些()

A.肺通气功能检查B.支气管激发试验C.诱导痰细胞学检查D.24h食管PH值-多通道阻抗监测E.支气管舒张试验
支气管哮喘病人急性发作时氧分压大于45毫米汞柱
关于心源性水肿下列说法错误的是()。

A.心源性水肿主要是右心衰竭的表现

B.水肿特点是首先出现于身体下垂部位(下垂部流体静水压较高)

C.能起床活动者,最早出现于踝内侧,行走活动后明显,休息后减轻或消失

D.经常卧床者以眼睑部为明显
表浅淋巴结肿大,下列检查结果中,提示为淋巴结炎的是()
A.
有压痛、不光滑
B.
有破溃、质地硬
C.
质地硬、无压痛
D.
有压痛、无粘连
E.
有粘连、无压痛