佇列的陣列實現

2022-05-04 06:03:10 字數 2663 閱讀 6351

queue.h

1

/*佇列的型別宣告 */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

*/

queue.c

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