circularqueue.h
#pragma once
#pragma once
#ifndef circularqueue_h
#define circularqueue_h
#include
#include
using std::cout;
using std::cin;
using std::endl;
using std::ostream;
template class cirqueue;
template
class cirqueue
int getrear()
bool gettop(t& elem);//讀取佇列首個元素
template
friend ostream& operator<& queue);
private:
bool _full()const;//判斷佇列是否已滿
int maxsize;//佇列最大的空間
t* element;//存放於佇列中的元素陣列
int front;//模擬隊頭指標
int rear;//模擬隊尾指標};
template
cirqueue::cirqueue(int sz)
template
cirqueue::~cirqueue()
//進隊
template
void cirqueue::push(const t& elem)
else }
//出隊
template
void cirqueue::pop(t& elem)
else }
//檢視佇列是否為空
template程式設計客棧name t>
bool cirqueue::empty()
//返回佇列中元素的個數
template
int cirqueue::getsize()
//清空佇列中的元素
template
void cirqueue::clearqueue()
if (rear < front)
} }}
//列印佇列中的元素
template
void cirqueue::print()
} if (rear < index)
} } }}
//讀取佇列首個元素
template
bool cirqueue::gettop(t& elem)
return false;}
template
ostream& operator<& queue)
//判斷佇列是否已滿
template
bool cirqueue::_full()const
#endif // !circularqueue_h
main.cpp
#include"circularqueue.h"
int main()
cq.print();
cout << cq;
for (int i = 0; i < 20; i++)
cout << cq;//此時front=rear=19
cout << cq.getfront() << " " << cq.getrear() << endl;
//for (int i = 19; i < 25; i++)
// cq.push(19);
cq.print();
cout << cq.getfront() << " " << cq.getrear() << endl;
cout << endl << endl;
cq.push(20);
cq.gettop(a);
cout << a << endl;
cq.print();
cout << cq.getfront() << " " << cq.getrear() << endl;
return 1;
}本文標題: c++實現迴圈佇列
本文位址:
C 迴圈佇列實現
乙個迴圈佇列的c語言實現,資料型別queue定義如下,注意在typedef structqueue 中queue為資料型別,而在struct queue 中queue為乙個變數名。front為隊首元素下標,始終指向隊首元素,tail為隊尾元素的下乙個位置的下標。初始狀態為front tail 0 t...
陣列實現迴圈佇列 C 實現
file name aqueue.cpp function 陣列實現迴圈佇列 c 實現 陣列a 0 一端為head 1.當 head tail時為空 2.tail總指向 隊尾元素的下一位置 3.tail max head 1,也就是說,保留乙個元素空間 4.佇列最多有 max 1 個元素 5.當 t...
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...