1.首先分配迴圈佇列的位址空間,用q表示,分配好頭指標、尾指標。
int *init_queue(q, m,rear,front, s)
int *q;int m;int *rear;int *front;int * s;
2.往佇列中加入成員資料:用*s判斷佇列是否滿?如果不滿資料進佇列,尾指標移動乙個單位
void addcq(q, m,rear,front, s,x)
int q;int m;int *rear;int *front;int * s;int x;
*rear=*rear+1;
if(*rear==m+1) *rear=1;
q[*rear-1]=x;
*s=1;
return;}
3.從佇列中取出資料:用*s判斷佇列是否為空?如果不為空,取出資料,頭指標移動乙個單位
void delcq(int q,int m,int *rear,int *front,int *s,int *y)
*front=*front+1;
if(*front==m+1)
*front=1;
*y=q[*front-1];
if(*front==*rear)
*s=0;
return ;}
定義好以上3個函式後就可以進行迴圈佇列的操作了,例如:
#include
#include
int *init_queue(q, m,rear,front, s)
int *q;int m;int *rear;int *front;int * s;
void addcq(q, m,rear,front, s,x)
int q;int m;int *rear;int *front;int * s;int x;
*rear=*rear+1;
if(*rear==m+1) *rear=1;
q[*rear-1]=x;
*s=1;
return;
}void delcq(int q,int m,int *rear,int *front,int *s,int *y)
*front=*front+1;
if(*front==m+1)
*front=1;
*y=q[*front-1];
if(*front==*rear)
*s=0;
return ;
}int main()
for(i=0;i<10;i++)
return 0;
}
迴圈佇列操作實現
該實現front始終指向當前的頭結點,rear始終指向尾結點的 下乙個結點 include include define maxnum 10 define datatype int typedef struct queue queue void initqueue queue p int empty...
迴圈佇列的操作
佇列是一種操作受限的線性表,特點是 先進先出 其限制在於允許在表的一端進行插入,稱之為隊尾 rear 新元素進隊稱為進隊 在表的另一端進行刪除隊頭 front 從佇列中刪除元素稱為出隊。而順序隊作為佇列的一種儲存方式,常被運用,但是為了解決順序佇列的 假溢位 現象 順序隊中,是引入兩個指標,且兩個指...
迴圈佇列基本操作
include include include include define ok 1 define error 0 define maxsize 4 分配的最大空間 typedef struct que queuelink int initloopqueue queuelink 初始化迴圈佇列 i...