/* 隊列的順序存儲結構 */
typedef struct{
ElemType data[MacSize];
int front,rear; //隊首,隊尾指針
} SqQueue;
//初始化隊列
void InitQueue(SqQueue *&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;
}