迴圈佇列操作

2021-06-26 06:46:29 字數 1279 閱讀 6031

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...