//e=*(Q.base +Q.rear);
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXQSIZE;
return OK;//返回操作状态(成功:OK,失败:ERROR)
//....................................
}
//删除队列Q的队头元素,并用e返回
// 前提:队列Q存在且非空
Status DeQueue(SqQueue &Q, ElemType e)
{
/* TODO (#9#): 出队列存入e */
if(Q.front==Q.rear)
return ERROR;
//e=*(Q.base+Q.front);
e=Q.base[Q.front];
Q.front=(Q.front+1)%MAXQSIZE;
return OK;//返回操作状态(成功:OK,失败:ERROR)
//....................................
}
//////////////////////////////////////////
//TODO: 定义好 SqQueue 类型后使用 QueueView 函数
/****** //TODO: 删除此行以便使用QueueView()
#include <stdio.h>
//查看队列状态(调试用)
void QueueView(SqQueue Q)
{
extern void PrintElem(ElemType e);//打印数据用
int i=0;
if(Q.front<0||Q.front>=MAXQSIZE||Q.rear<0||Q.rear>=MAXQSIZE){
printf("队列未初始化n");
return ;
}
printf("---Queue View---n");
printf("front=%d , rear=%dn", Q.front, Q.rear);
if(Q.rear>=Q.front) {
printf("..... ......n");
for(i=Q.front; i<Q.rear; i++) {
printf("%5dt", i);
PrintElem(Q.base[i]);
printf("n");
}
if(i<MAXQSIZE) printf("..... ......n");
} else {
for(i=0; i<Q.rear; i++) {
printf("%5dt", i);
PrintElem(Q.base[i]);
printf("n");
}
printf("..... ......n");
for(i=Q.front; i<MAXQSIZE; i++) {