/*
顺序队
队空条件:front=rear;
队满条件:rear=maxsize-1
元素进队:rear++;data[rear]=e;
元素出队:front++;e=data[front]
初始时:front=rear=-1;
typedef struct
{
ElementType data[maxsize];
int front,rear;
}SqQueue;
/初始化队列/
void InitQueue(SqStack *&q)
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=-1;
}
/销毁队列/
void DestroyQueue(SqQueue *&q)
{
free(q);
}
/判断是否为空/
bool QueueEmpty(SqQueue *q)
{
return (q->front==q->rear);
}
/进队/
bool enQueue(SqQueue *&q,ElemType e)
{
if(q->rear==maxsize-1)
return false;
q->rear++;
q->data[q->rear]=e;
return true;
}
/出队/
bool deQueue(SqQueue *&q,ElemType &e)
{
if(q->front==q->rear)
return false;
q->front++;
e=q->data[q->front];
return true;
}