6 3 迴圈佇列操作集

2021-10-10 21:36:13 字數 2649 閱讀 5043

例如:

#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」); }

/* 請在這裡填寫答案 */

dequeue

enqueue 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

empty

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