迴圈佇列的實現(C語言)

2021-06-22 01:22:40 字數 1324 閱讀 1082

/*

迴圈佇列

vs2010 除錯

*/#include #include #include #define max_size 6

#define true 1

#define false 0

#define overflow 0

#define ok 1

#define error 0

typedef struct seq_queue

sq;/*

函式功能: 初始化迴圈佇列

*/int init_seq_queue(sq *q)

q->front = 0;

q->rear = 0;

return ok;}/*

函式功能: 佇列元素是否為空

返 回 值: 1 為空; 0 非空

*/int is_queue_empty(sq q)

/*函式功能: 佇列是否已滿

返 回 值: 1 已滿; 0 未滿

*/int is_queue_full(sq q)

/*函式功能: 元素num入隊

*/int enqueue(sq *q, int num)

q->rear = (q->rear + 1) % max_size;

q->data[q->rear] = num;

return ok;}/*

函式功能: 元素出隊,出隊元素存入num

*/int dequeue(sq *q, int *num)

q->front = (q->front + 1) % max_size;

*num = q->data[q->front];

return ok;}/*

函式功能: 獲取隊頭元素,元素存入num

*/int get_elem(sq q, int *num)

*num = q.data[q.front + 1];

return ok;}/*

函式功能: 獲得佇列長度

返 回 值: 佇列長度

*/int get_queue_length(sq q)

/*函式功能: 列印佇列元素

*/void print_queue(sq q)

printf("front<-");

while(i != ((q.rear + 1) % max_size))

printf("rear\n");}/*

函式功能: 銷毀佇列

*/void destory_queue(sq *q)

int main(int argc, char *argv)

迴圈佇列實現(C語言)

背景 生活中有很多佇列的影子,比如打飯排隊,買火車票排隊問題等,可以說與時間相關的問題,一般都會涉及到佇列問題 從生活中,可以抽象出佇列的概念,佇列就是乙個能夠實現 先進先出 的儲存結構。佇列分為鏈式佇列和靜態佇列 靜態佇列一般用陣列來實現,但此時的佇列必須是迴圈佇列,否則會造成巨大的記憶體浪費 鏈...

C語言迴圈佇列的實現

迴圈佇列的操作包括初始化 求佇列的長度 入隊 出隊 取隊頭元素。下面是實現 在初始化之前,先進行預定義 define ok 1 define error 0 define overflow 2 define maxsize 100 typedef int status typedef int ele...

mysql迴圈佇列 C語言實現 迴圈佇列

include include include typedef struct queue int pbase 陣列 int front 頭 int rear 尾 rear不存放資料,所以rear前面的是最後乙個資料 queue void init queue queue pq bool full q...