# include <iostream>
using namespace std;
template <class T>
class queue
{
public :
void clear();
bool enqueue (const T item);
bool dequeue(T & item);
bool getfront(T & item);
bool isempty();
bool isfull();
};
template <class T>
class arrqueue :public queue<T>
{
private :
int msize ;
int front;
int rear;
T *qu;
public :
arrqueue(int size)
{
msize=size+1;
qu=new T[msize];
front=rear=0;
}
~arrqueue()
{
delete [] qu;
}
void clear()
{
front=rear;
}
bool enqueue(const T item)
{
if(((rear+1)%msize)==front)
{
cout<<"队列已满,溢出"<<endl;
return false;
}
qu[rear]=item;
rear=(rear+1)%msize;
return true;
}
bool dequeue(T & item)
{
if(front==rear)
{
cout<<"队列为空 "<<endl;
return false;
}
item=qu[front];
front=(front+1)%msize;
return true;
}
bool getfront(T & item)
{
if(front==rear)
{
cout<<"队列为空"<<endl;
return false;
}
item=qu[front];
return true;
}
void show ()
{
int i=front;
if(rear>front)
{
for(i=front;i<rear;i++)
cout<<qu[i]<<","<<endl;
}
else
{
for( i=front;i<=msize-1;i++)
cout<<qu[i]<<","<<endl;
for(i=0;i<rear;i++)
cout<<qu[i]<<","<<endl;
}
}
using namespace std;
template <class T>
class queue
{
public :
void clear();
bool enqueue (const T item);
bool dequeue(T & item);
bool getfront(T & item);
bool isempty();
bool isfull();
};
template <class T>
class arrqueue :public queue<T>
{
private :
int msize ;
int front;
int rear;
T *qu;
public :
arrqueue(int size)
{
msize=size+1;
qu=new T[msize];
front=rear=0;
}
~arrqueue()
{
delete [] qu;
}
void clear()
{
front=rear;
}
bool enqueue(const T item)
{
if(((rear+1)%msize)==front)
{
cout<<"队列已满,溢出"<<endl;
return false;
}
qu[rear]=item;
rear=(rear+1)%msize;
return true;
}
bool dequeue(T & item)
{
if(front==rear)
{
cout<<"队列为空 "<<endl;
return false;
}
item=qu[front];
front=(front+1)%msize;
return true;
}
bool getfront(T & item)
{
if(front==rear)
{
cout<<"队列为空"<<endl;
return false;
}
item=qu[front];
return true;
}
void show ()
{
int i=front;
if(rear>front)
{
for(i=front;i<rear;i++)
cout<<qu[i]<<","<<endl;
}
else
{
for( i=front;i<=msize-1;i++)
cout<<qu[i]<<","<<endl;
for(i=0;i<rear;i++)
cout<<qu[i]<<","<<endl;
}
}
};
# include <iostream>
# include "5.h"
using namespace std;
void main()
{
int max,e,i,m;
cout<<"请输入队列的长度:";
cin>>max;
arrqueue <int> yddqueue(max);
cout<<"请输入有多少个元素:";
cin>>m;
cout<<"请输入 "<<m<<" 元素:";
for(i=1;i<=m;i++)
{
cin>>e;
yddqueue.enqueue(e);
}
yddqueue.show();
cout<<"dequeue an element is:";
yddqueue.dequeue(e);
cout<<e<<endl;
}