代码如下:
#include <iostream>
#include <stdlib.h>
#define MaxSize 10
using namespace std;
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int front,rear;
} SqQueue;
void InitQueue(SqQueue *q)//初始化队列InitQueue
{
//q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}
void DestroyQueue(SqQueue *q)//销毁队列DestroyQueue
{
free(q);
}
bool QueueEmpty(SqQueue *q)//判断队列是否为空QueueEmpty
{
return (q->front==q->rear);
}
bool enQueue(SqQueue *q,ElemType e)//进队列enQueue
{
if(<span style="color:#ffff66;background-color: rgb(255, 0, 0);">(q->rear+1)%MaxSize == q->front</span>)
return false;
else
{
<span style="color:#ffff66;">q->rear=(q->rear+1)%MaxSize;</span>
q->data[q->rear]=e;
return true;
}
}
bool deQueue(SqQueue *q,ElemType &e)//出队列deQueue
{
if(q->front==q->rear)
return false;
else
{
<span style="background-color: rgb(255, 153, 0);">q->front=(q->front+1)%MaxSize;</span>
e=q->data[q->front];
return true;
}
}
int main()
{
SqQueue *q = new SqQueue();
char e;
InitQueue(q);
enQueue(q,'a');
cout<<QueueEmpty(q)<<endl;
deQueue(q,e);
cout<<e<<endl;
DestroyQueue(q);
cout<<QueueEmpty(q)<<endl;
return 0;
}