(四)資料結構之迴圈佇列

2021-10-02 06:55:24 字數 874 閱讀 7268

之前不採用stl實現雙端佇列時我記得我就是使用了迴圈佇列。。。其實這是不規範的(雖然說使用很靈活,但我覺得還是應該分開來,避免弄混)。所以誤區就是,迴圈佇列是不允許彈出隊尾或新增隊首的,也就是說它是最傳統的佇列,嚴格符合「先進先出,後進後出」的特點!

判斷佇列是否滿有兩種解決方法:

少用乙個單元,規定頭(front)在尾(rear)後一位時就為滿狀態

設定乙個標誌,可以用bool 型,若滿則為true,未滿則false

#include

using

namespace std;

//--------------------迴圈佇列實現------------------//

#define elemtype int

#define maxsize 20

struct cirque

;// 初始化迴圈佇列

void

init

(cirque &q)

// 插入元素

void

inque

(cirque &q, elemtype e)

q.base[q.rear++

]= e;

}// 彈出並返回元素

elemtype&

popque

(cirque &q)

return q.base[q.front++];

}// 列印佇列

void

printque

(const cirque &q)

else

}int

main()

晚安~~

資料結構四 迴圈佇列

1.在之前的佇列中,因為是通過rear maxsize 1判斷佇列是否滿了,而如果出隊後,front依次往後移動,這就會導致front前面的空間白白浪費掉,整個陣列空間其實並沒有滿,所以這裡就有了迴圈佇列 2.迴圈佇列這裡設定front為第乙個元素,而rear為最後乙個元素的下乙個元素,同時規定迴圈...

資料結構之迴圈佇列

資料結構之佇列 迴圈佇列 ide vs2010 佇列操作 初始化 入隊 插入隊尾 出隊 即取隊頭 判斷佇列是否非空 滿 include using namespace std define max len 100 定義節點型別 typedef struct queue queue 初始化 void ...

資料結構之迴圈佇列

4.10 佇列的定義 佇列定義 一種先進先出的線性表。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。隊頭 隊尾 出佇列 a1 a2 a3 a4 an 入佇列 佇列有類似線性表的各種操作,不同的就是插入資料只能在隊尾進行,刪除資料只能在隊頭進行。線性表有線性儲存和鏈式儲存。棧是線性表,有這兩種儲存方...