例如:
#define maxsize 10在這裡給出函式被呼叫進行測試的例子。例如:typedef struct _queue queue;
//建立乙個空佇列 queue* createqueue(); //入隊 void enqueue(queue* q, int x);
//判斷佇列是否已滿 bool isfull(queue* q); //出隊 void dequeue(queue* q);
//得到隊頭元素的值 int front(queue* q); //判斷佇列是否為空 bool isempty(queue* q);
//返回佇列長度 int size(queue* q); //銷毀佇列 void destroyqueue(queue* q);
//從0號位置開始輸出資料區的所有元素。無效位置輸出』x』 void show(queue* q);
/迴圈佇列/
#include#include
#include
#include
#define maxsize 10
typedef struct _queue queue;
//建立乙個空佇列 queue* createqueue(); //入隊 void enqueue(queue* q, int x);
//判斷佇列是否已滿 bool isfull(queue* q); //出隊 void dequeue(queue* q);
//得到隊頭元素的值 int front(queue* q); //判斷佇列是否為空 bool isempty(queue* q);
//返回佇列長度 int size(queue* q); //銷毀佇列 void destroyqueue(queue* q);
//從0號位置開始輸出資料區的所有元素。無效位置輸出』x』 void show(queue* q);
int main(void)
else
}if (strcmp(cmd, 「dequeue」) == 0)
else
}if (strcmp(cmd, 「getfront」) == 0)
if (strcmp(cmd, 「size」) == 0)
if (strcmp(cmd, 「show」) == 0)
scanf("%s", cmd);
}destroyqueue(pqueue);
return 0; }
//從0號位置開始輸出資料區的所有元素。無效位置輸出』x』 void show(queue* q)
for (int i = q->front; i < q->rear; i++)
for (int i = q->rear; i < maxsize; i++)
}else
for (int i = q->rear; i < q->front; i++)
for (int i = q->front; i < maxsize; i++)
}printf(」\n」); }
/* 請在這裡填寫答案 */
dequeueenqueue 1
enqueue 2
enqueue 3
show
getfront
size enqueue 4
enqueue 5
enqueue 6
enqueue 7
enqueue 8
enqueue 9
enqueue 10
enqueue 11
show
getfront
size
dequeue
dequeue
dequeue
show
getfront
size
>enqueue 12
enqueue 13
show
getfront
size
end
empty1 2 3 x x x x x x x
1size = 3
full
full
1 2 3 4 5 6 7 8 9 x
1size = 9
x x x 4 5 6 7 8 9 x
4size = 6
13 x x 4 5 6 7 8 9 12
4size = 8
queue*
createqueue()
void
enqueue
(queue* q,
int x)
bool isfull
(queue* q)
void
dequeue
(queue* q)
intfront
(queue* q)
bool isempty
(queue* q)
intsize
(queue* q)
void
destroyqueue
(queue* q)
6 3 另類迴圈佇列 (20 分
如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。函式介面定義 bool addq queue q,elementtype x elementtype deleteq queue q 其中queu...
迴圈佇列操作
1.首先分配迴圈佇列的位址空間,用q表示,分配好頭指標 尾指標。int init queue q,m,rear,front,s int q int m int rear int front int s 2.往佇列中加入成員資料 用 s判斷佇列是否滿?如果不滿資料進佇列,尾指標移動乙個單位 void ...
迴圈佇列操作實現
該實現front始終指向當前的頭結點,rear始終指向尾結點的 下乙個結點 include include define maxnum 10 define datatype int typedef struct queue queue void initqueue queue p int empty...