#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<<"此时的队头元素为:"<
}