#ifndef CirQueue_H
#define CirQueue_H
const int N=50;
template
class CirQueue
{
public:
CirQueue();
~CirQueue(){};
void enqueue(T x);
T dequeue();
T getqueue();
int empty();
private:
T data[N];
int front,rear;
};
#endif
#include"CirQueue.h"
template
CirQueue
::CirQueue()
{
front=rear=N-1;
}
template
void CirQueue
::enqueue(T x) { if((rear+1)%N==front) throw "overflow"; rear=(rear+1)%N; data[rear]=x; } template
T CirQueue
::dequeue() { if(rear==front)throw"underflow"; front=(front+1)%N; return data[front]; } template
T CirQueue
::getqueue() { T x; if(rear==front) throw"underflow"; x=(front+1)%N; return data[x]; } template
int CirQueue
::empty() { if(front==rear)return 1; else return 0; } #include
#include
#include"CirQueue.h" #include"Cirqueue_func.cpp" using namespace std; int main() { CirQueue
S; if(S.empty()) cout<<"这是空队列"<
>a; cout<<"输入b:";cin>>b; S.enqueue(a);S.enqueue(b); cout<<"此时的队头元素为:"<
<
}
模板类CirQueue的实现与使用
2518





