利用线性表实现队列,为了有效利用空间,将其设计为循环结构,防止假溢出;牺牲一个存储单元以区分队空、队满。 设front队头,rear队尾,N为顺序表大小 队空:rear==front
队满:(rear+1)%N==front
#include#define Elemtype int#define N 100struct Queue{ Elemtype data[N]; int front,rear;};void initQueue(Queue &Q){ Q.rear=Q.front=0;}int enQueue(Queue &Q,Elemtype x){ if((Q.rear+1)%N==Q.front)return 0; Q.rear=(Q.rear+1)%N; Q.data[Q.rear]=x; return 1;}int deQueue(Queue &Q,Elemtype &x){ if(Q.rear==Q.front)return 0; Q.front=(Q.front+1)%N; x=Q.data[Q.front]; return 1;}int main(){ Queue Q; initQueue(Q); enQueue(Q,12); enQueue(Q,2); Elemtype x; deQueue(Q,x); printf("%d",x); return 0;}