#include<iostream>
using namespace std;
const int MaxQueueSize=20;
template<typename T>
class SeqQueue
{
public:
SeqQueue(T a[],int n=0):front(0),rear(n),count(n)
{
int i;
for(i=0;i<count;i++)
data[i]=a[i];
}
~SeqQueue()
{
front=rear;
cout<<"顺序循环队已被析构!"<<endl;
}
bool IsEmpty()
{
if(rear=front&&count==0)
return 1;
else
return 0;
}
bool IsFull()
{
if(rear==front&&count!=0)
return 1;
else
return 0;
}
void EnQueue(T x)
{
if(IsFull())
{
cout<<"队已满!!"<<endl;
exit(1);
}
data[rear]=x;
rear=(rear+1)%MaxQueueSize;
count++;
}
void DeQueue()
{
if(IsEmpty())
{
cout<<"队已空,无法执行出对操作";
exit(1);
}
rear--;
count--;
}
T GetQueueFront()
{
T x=data[rear-1];
return x;
}
void ShowQueue()
{
int i;
for(i=0;i<count;i++)
cout<<data[i]<<",";
cout<<endl;
}
private:
T data[MaxQueueSize];
int front;
int rear;
int count;
};
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
SeqQueue<int> sq(a,10);
sq.ShowQueue();
int x=11;
sq.EnQueue(x);
cout<<"入队以后:";
sq.ShowQueue();
sq.DeQueue();
cout<<"出队以后:";
sq.ShowQueue();
return 1;
}
using namespace std;
const int MaxQueueSize=20;
template<typename T>
class SeqQueue
{
public:
SeqQueue(T a[],int n=0):front(0),rear(n),count(n)
{
int i;
for(i=0;i<count;i++)
data[i]=a[i];
}
~SeqQueue()
{
front=rear;
cout<<"顺序循环队已被析构!"<<endl;
}
bool IsEmpty()
{
if(rear=front&&count==0)
return 1;
else
return 0;
}
bool IsFull()
{
if(rear==front&&count!=0)
return 1;
else
return 0;
}
void EnQueue(T x)
{
if(IsFull())
{
cout<<"队已满!!"<<endl;
exit(1);
}
data[rear]=x;
rear=(rear+1)%MaxQueueSize;
count++;
}
void DeQueue()
{
if(IsEmpty())
{
cout<<"队已空,无法执行出对操作";
exit(1);
}
rear--;
count--;
}
T GetQueueFront()
{
T x=data[rear-1];
return x;
}
void ShowQueue()
{
int i;
for(i=0;i<count;i++)
cout<<data[i]<<",";
cout<<endl;
}
private:
T data[MaxQueueSize];
int front;
int rear;
int count;
};
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
SeqQueue<int> sq(a,10);
sq.ShowQueue();
int x=11;
sq.EnQueue(x);
cout<<"入队以后:";
sq.ShowQueue();
sq.DeQueue();
cout<<"出队以后:";
sq.ShowQueue();
return 1;
}