迴圈隊列,迴圈隊列的基本操作
利用線性表實現隊列,為了有效利用空間,將其設計為迴圈結構,防止假溢出;犧牲一個儲存單元以區分隊空、隊滿。
設front隊頭,rear隊尾,N為順序表大小
隊空:rear==front
隊滿:(rear+1)%N==front
#include<stdio.h>#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;}
迴圈隊列的基本操作
if(DeQueue(q,MAXN,&q_t,&q_t,&i)==0){///////////////////
if(DeQueue(q,MAXN,&q_h,&q_t,&i)==0){///////////////////是否這兒出問題呢
迴圈隊列的基本操作
if(DeQueue(q,MAXN,&q_t,&q_t,&i)==0){///////////////////
if(DeQueue(q,MAXN,&q_h,&q_t,&i)==0){///////////////////是否這兒出問題呢