迴圈鍊錶寫迴圈佇列,只用乙個隊尾指標就夠了,因為迴圈鍊錶中隊尾節點的下乙個節點就是隊首節點。
隊空條件:
隊滿條件:不考慮
進隊操作:將新的節點插入到隊尾,稱為隊尾節點,然後隊尾指標指向這個新的節點。
#include #include #include #define error 0
#define ok 1
typedef int status;
#define elemetype_lqu int //鏈式棧資料型別
typedef struct qnode qunode, * lqueue;
typedef struct
liqueue,*liqueue;
/*******************鏈式迴圈佇列(只用尾節點指標)******************/
void initqueue_lk_cir(liqueue& qu) //其實不用傳遞qu,只需要傳遞乙個rear指標就行了,我這裡懶得重新定義了,就用了之前的定義。
bool queueempty_lk_cir(liqueue& qu)
status enqueue_lk_cir(liqueue& qu, elemetype_lqu e)
else
return ok;
}status dequeue_lk_cir(liqueue& qu, elemetype_lqu& e)//注意出隊是從頭出
else
e = p->data;
free(p);
return ok;
}int queuecount_lk_cir(liqueue& qu)
num++;
return num;
}/*******************鍊錶迴圈佇列測試********************/
void queuetest_lk_cir()
int main()
資料結構 順序表實現環形佇列
1 佇列的定義 佇列是一種特殊的線性表,線性表兩端都可以進行插入刪除,而佇列只能在隊頭刪除,隊尾插入。插入元素稱為入隊,刪除元素稱為出隊。2 佇列的特點 1 只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表 2 進行插入操作的一端稱為隊尾 入佇列 3 進行刪除操作的一端稱為隊頭 出...
資料結構 佇列,陣列實現 鍊錶實現和迴圈佇列
一 什麼是佇列 一種先進先出的資料結構 fifo結構 新元素新增在隊尾 push 刪除操作刪掉第乙個元素 pop 二 佇列的實現方式 佇列的實現方式陣列實現 鍊錶實現 三 常見的佇列 常用佇列迴圈佇列 阻塞佇列 併發佇列 四 怎麼實現乙個無bug的佇列思考 思考1 head 頭元素 和tail 尾元...
資料結構 環形鍊錶
約瑟夫問題 josephu問題為 設編號為1,2,n的n個人圍坐一圈,約定編號為k 1 k n 的人從1開始報數,數到m的那個人出列,它的下一位又從1開始報數,數到m的那個人又出列,依次類推,直到所有人出列為止,由此產生 個出隊編號的序列。n 5即有五個人 k 1,從第乙個人開始 m 2,數兩下 出...