這是筆試中遇到的一道題,要求實現迴圈佇列,有入隊,出隊,判斷是否為空,是否滿等操作。
分析:可以使用乙個陣列來存放迴圈佇列,隊頭標記與隊尾標記初始都為0,入隊操作即隊尾標記加1,若加1後相對迴圈等於隊頭則上溢;出隊操作即隊頭標記加1,若加1後相對迴圈等於隊尾則下溢;若隊頭標記等於隊尾標記則為空;若隊尾標記加1相對迴圈等於隊頭則為滿。
具體實現如下:
template
class cirqueue
; cirqueue()
~cirqueue()
void enqueue(t x)
t dequeue()
bool isempty()
bool isfull()
private:
int front, rear;
t data[maxsize];
};
c 實現乙個簡單的迴圈佇列
實現乙個迴圈佇列 佇列的特點就是先進先出,尾插頭出。涉及到迴圈,無論是陣列還是鍊錶,重點在於取餘!防止溢位。例如陣列大小為5,當隊尾為4時,且 隊頭!隊尾 再入隊後,隊尾應改變為0,需用取餘。include using namespace std class queue 析構函式 queue 拷貝構...
如何實現乙個迴圈佇列
下面是乙個迴圈佇列的完整實現,歡迎讀者朋友參考和指正 template class cyclicqueue cyclicqueue cyclicqueue const cyclicqueue copy m poppos 0 m count 0 cyclicqueue operator const c...
如何實現乙個迴圈佇列
template class cyclicqueue cyclicqueue cyclicqueue const cyclicqueue copy m poppos 0 m count 0 cyclicqueue operator const cyclicqueue other return thi...