C語言迴圈佇列的實現

2021-07-26 05:25:45 字數 1111 閱讀 9311

迴圈佇列的操作包括初始化、求佇列的長度、入隊、出隊、取隊頭元素。下面是實現**:

在初始化之前,先進行預定義:

#define ok 1

#define error 0

#define overflow -2

#define maxsize 100

typedef int status;

typedef int elemtype;

typedef structsqqueue;

初始化:

status initqueue(sqqueue *q)

先在記憶體中分配100個elemtype型別的空間,然後讓q->base指向首位址。判斷q->base是否為null,如果是,說明分配失敗,則退出;不為null的時候,讓q->front和q->rear為0。

求佇列長度:

int queuelength(sqqueue q)

將q->rear減去q->front再加maxsize後對maxsize求余能得到長度。

入隊:

status enqueue(sqqueue *q, elemtype e)

插入之前,先判斷佇列是否已滿,如果已滿,返回錯誤。將e賦值給q->base[q->rear](即插入隊尾)。然後將隊尾後移一位。

出隊:

status dequeue(sqqueue *q, elemtype *e)

出隊之前,先判斷隊是否為空隊,如果是,則返回錯誤。將隊頭元素q->base[q->front]賦值給*e,然後將隊頭向後移動一位即可。

取隊頭元素:

elemtype gethead(sqqueue q)

先判斷是否為空隊,如果為空,則返回錯誤,不為空的話返回首元素。

加入main()測試:

int main(void)

}return 0;

}

迴圈佇列實現(C語言)

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

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

迴圈佇列 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 ...

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