/*
該實現front始終指向當前的頭結點,rear始終指向尾結點的
下乙個結點*/#
include
#include
#define maxnum 10
#define datatype int
typedef
struct
queue
queue
;void initqueue(
queue
** p)
}int emptyqueue(
queue
** p)
void enqueue(
queue
** p, datatype x)
//將x插入隊尾
(*p)
->
queue[(
*p)-
>rear]
= x;
(*p)
->rear =((
*p)-
>rear+1)
%maxnum;
}void delqueue(
queue
** p, datatype* x)
//刪除佇列頭元素,用x返回
*x =
(*p)
->
queue[(
*p)-
>front];(
*p)-
>front =((
*p)-
>front+1)
%maxnum;
}void firstqueue(
queue
** p, datatype* x)
//返回佇列頭元素
void prqueue(
queue
** p)
//列印佇列元素
printf
("/n");
}int main(
int argc,
char
** argv)
***/
prqueue(
&p);
for(i = 0; i < 3; i++)
printf
("/n");
enqueue(
&p,'*');
enqueue(
&p,'$');
prqueue(
&p);
firstqueue(
&p,&c)
;printf
("first queue is %c/n"
, c)
;exit
(0);
}
佇列的操作與實現 迴圈佇列
由於順序佇列有 假溢位 的缺點,所以在應用中,運用更多的是迴圈佇列來實現佇列的順序儲存。由於引用傳引數,所以原始檔需要.cpp字尾,即c 檔案儲存。迴圈佇列的判空條件為 q.rear q.fornt 迴圈佇列的判讀隊滿的條件是 q.rear 1 maxsize q.fornt 下面是佇列實現的儲存型...
迴圈佇列的基本操作實現
front 指向隊頭元素的前乙個單元 rear 指向隊尾元素 maxsize 陣列的最大長度 元素入隊的時候,將隊尾的指標加1,然後元素入隊 元素出隊時,先將對頭指標加1,然後元素出隊。隊頭指標進1 front front 1 maxsize 隊尾指標進1 rear rear 1 maxsize 在...
迴圈佇列操作
1.首先分配迴圈佇列的位址空間,用q表示,分配好頭指標 尾指標。int init queue q,m,rear,front,s int q int m int rear int front int s 2.往佇列中加入成員資料 用 s判斷佇列是否滿?如果不滿資料進佇列,尾指標移動乙個單位 void ...