迴圈佇列(順序佇列)的實現

2021-09-07 03:45:51 字數 938 閱讀 6888

//迴圈佇列(順序佇列)的實現

#include

#include

#include

#include

#define n 6 

//定義資料型別

typedef int datatype_t;

//定義結構體

typedef structsequeue_t;

sequeue_t *sq;

//建立乙個空的佇列

sequeue_t *sequeue_create()

//判斷佇列是否為空

int sequeue_empty(sequeue_t *sq)

//判斷佇列是否為滿

int sequeue_full(sequeue_t *sq)

//入隊

int sequeue_push(sequeue_t *sq, datatype_t value)

sq->data[sq->rear] = value;

sq->rear = (sq->rear + 1) % n;

printf("sequeue_push is ok %d \n",value);

return 0;

}//出隊

datatype_t sequeue_pop(sequeue_t *sq)

datatype_t value;

value = sq->data[sq->front];

sq->front = (sq->front + 1) % n;

return value;

}int main(int argc, const char *argv)

if(j == 0)

j = 1;

else

j = 0;

getchar();        

}return 0;

}

佇列 迴圈佇列 的順序儲存實現

佇列的順序儲存實現 1 佇列 一端進,另一端出 佇列由兩個引數決定,front 頭 rear 尾 頭指標指向頭乙個元素,尾指標指向指向最後乙個元素的下一儲存單元 若陣列長度為n,當元素個數為n 1時就認為佇列已滿。r指向最後乙個空的元素空間。出隊 頭指標往上移動,入隊 尾指標向上移動,故 靜態佇列只...

迴圈佇列 順序佇列

在前兩篇中講述了順序佇列中的隊頭移動與不移動兩種順序佇列,今天討論順序佇列中的迴圈佇列,這種迴圈佇列是用一維陣列實現的。在隊頭移動的情況下,根據元素個數與佇列容量之間的數量關係來解決假溢位問題。從上圖中我們可以理解為什麼這種佇列結構可以解決假溢位問題,但是隨之而來,我們要如何判定迴圈佇列已滿呢?在此...

佇列 順序迴圈佇列

順序佇列 sequence queue 用一片連續的儲存空間來儲存佇列中的資料元素.用一維陣列來存放順序佇列中的資料元素。隊頭位置設在陣列下標為 0 的端,用 front 表示 隊尾位置設在陣列的另一端,用 rear 表示。front 和 rear 隨著插入和刪除而變化。當隊列為空時,front r...