queue.h
1queue.c/*佇列的型別宣告 */2
3 typedef int
elementtype;4/*
start: fig3_57.txt */5
#ifndef _queue_h
6#define _queue_h78
struct
queuerecord;
9 typedef struct queuerecord *queue;
1011
intisempty( queue q );
12int
isfull( queue q );
13 queue createqueue( int
maxelements );
14void
disposequeue( queue q );
15void
makeempty( queue q );
16void
enqueue( elementtype x, queue q );
17elementtype front( queue q );
18void
dequeue( queue q );
19elementtype frontanddequeue( queue q );
2021
#endif /* _queue_h */
22/*
end
*/
1 #include "queue.h
"2 #include "
fatal.h
"3 #include 4
5#define minqueuesize ( 5 )67
/*列隊結構的定義*/8
struct
queuerecord9;
1617
/*start: fig3_58.txt
*/18
19/*
判斷佇列是否為空
*/20
int21
isempty( queue q )
2225
/*end
*/26
27/*
判斷佇列是否滿
*/28
int29
isfull( queue q )
3033
34/*
建立空佇列
*/35
queue
36 createqueue( int
maxelements )
3755
56/*
start: fig3_59.txt
*/57
58/*
初始化佇列
*/59
void
60makeempty( queue q )
6166
/*end
*/67
68/*
釋放佇列記憶體
*/69
void
70disposequeue( queue q )
7177}78
79/*
start: fig3_60.txt
*/80
81/*
給出q->front、q->rear自增1後的陣列下標值
*/82
static
int83 succ( int
value, queue q )
8489
/*90
1:加了static後表示該函式失去了全域性可見性,只在該函式所在的檔案作用域內可見
9192
93沒有函式名,其它編譯單元便不能通過該函式名來呼叫該函式,這也是對1的解析與說明
9495
3:所以queue.h標頭檔案中不需要宣告
96*/
9798
99/*
入隊 */
100void
101enqueue( elementtype x, queue q )
102111
}112
/*end
*/113
114115
/*返回隊頭元素,但不出隊
*/116
elementtype
117front( queue q )
118124
125/*
出隊 */
126void
127dequeue( queue q )
128136
}137
138/*
返回隊頭元素,並且出隊
陣列實現的佇列
myqueue.h 說明 ntai的下乙個位置就是nhead的話,表示隊滿了,犧牲乙個空間 ntail nhead,表示隊為空 入隊的時候要判斷隊是否為滿,出隊的時候,要判斷是否為空。define size 1000 陣列大小 class cmyqueue myqueue.cpp include s...
佇列的陣列實現
法一 include include define maxsize 100 為了節省空間,採用迴圈陣列,用到迴圈加1 非空時,front和rear指向端點元素 所以rear初始化為0,front為1 滿的時候,一種情況是,front為1,rear為maxsize 1,滿足 queue rear 2 ...
佇列的陣列實現
typedef struct quene 初始化 void initquene quene q 判空 bool isfull quene q 入隊 void enquene quene q,int e 出隊 void dequene quene q 讀隊頭元素 intgettop quene q r...