#include
using namespace std;
const int queuesize=100;
template
class cirqueue
{
public:
cirqueue(){front=rear=queuesize-1;}
~cirqueue(){}
void enqueue(t x);
t dequeue();
t getqueue();
int empty(){return frontrear?1:0;}
private:
t data[queuesize];
int front,rear;
};
template
void cirqueue::enqueue(t x)
{
if((rear+1)%queuesizefront)throw"下溢";
rear=(rear+1)%queuesize;
data[rear]=x;
};
template
t cirqueue::dequeue()
{
if(rearfront)throw"下溢";
front=(front+1)%queuesize;
return data[front];
};
template
t cirqueue::getqueue()
{
if(rearfront)throw"下溢";
int i=(front+1)%queuesize;
return data[i];
};
int main()
{
cirqueue A;
cout<<“建立队内元素为’a’,‘c’,‘d’,‘e’,'h’的队列”<<endl;
char a[5]={‘a’,‘c’,‘d’,‘e’,‘h’};
for(int i=0;i<5;i++)
{
A.enqueue(a[i]);
};
cout<<“队头元素为:”<<endl;
cout<<A.getqueue()<<endl;
cout<<“队列元素依次出队”<<endl;
for(int i=0;i<5;i++)
{
cout<<A.dequeue()<<’ ';
};
cout<<endl;
cout<<“若栈为空输出1,非空输出0”<<endl;
cout<<A.empty()<<endl;
return 0;
}