题目描述
实现循环队列的出队操作 bool deQueue(SqQueue *&q,ElemType &e)(队列q的元素出队,用e保存)。假设顺序队列的元素类型为char,主函数已给出。
注意:只提交 bool deQueue(SqQueue *&q,ElemType &e) 部分。
#include <stdio.h>
#include <malloc.h>
#define MaxSize 5
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int front,rear; //队首和队尾指针
} SqQueue;
void InitQueue(SqQueue *&q) //初始化队列
{
q=(SqQueue *)malloc (sizeof(SqQueue));
q->front=q->rear=0;
}
void DestroyQueue(SqQueue *&q) //销毁队列
{
free(q);
}
bool QueueEmpty(SqQueue *q) //判断队列空
{
return(q->front==q->rear);
}
bool enQueue(SqQueue *&q,ElemType e) //进队
{
if ((q->rear+1)%MaxSize==q->front) //队满上溢出
return false;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return true;
}
int main()
{
ElemType a,b,c,d,e;
SqQueue *q;
scanf("%c %c %c %c",&a,&b,&c,&d);
InitQueue(q);//初始化队列
enQueue(q,a); //依次进队列元素a,b,c,d
enQueue(q,b);
enQueue(q,c);
enQueue(q,d);
while (!QueueEmpty(q))
{
deQueue(q,e);
printf("%c ",e);
}
printf("\n");
DestroyQueue(q);
return 0;
}
输入
输入4个入队的元素
输出
输出4个出队的元素
样例输入
2 1 4 3
样例输出
2 1 4 3
参考代码
暂无
解析
暂无