//顺序队
#include<iostream.h>
const int Size=100;
template<class T>
class C
{
public:
C(){front=rear=Size-1;}
~C(){}
void En(T x);
T De();
T Get();
int Empty(){if(front==rear)return 1;else return 0;}
private:
T data[Size];
int front,rear;
};
template<class T>
void C<T>::En(T x)
{
if((rear+1)%Size==front)throw"上溢";
rear=(rear+1)%Size;
data[rear]=x;
}
template<class T>
T C<T>::De()
{
if(rear==front)throw"下溢";
front=(front+1)%Size;
return data[front];
}
template<class T>
T C<T>::Get()
{
int i;
if(rear==front)throw"下溢";
i=(front+1)%Size;
return data[i];
}
void hehe()
{
cout<<"1.入队操作"<<endl;
cout<<"2.出队操作"<<endl;
cout<<"3.查看队头"<<endl;
cout<<"4.推出程序"<<endl;
}
int main()
{
int i;
C<int> s;
if(s.Empty())
cout<<"队列为空"<<endl;
else
cout<<"队列非空"<<endl;
do{
hehe();
cin>>i;
switch(i)
{
case 1:int a;cout<<"请输入元素:";cin>>a; s.En(a);break;
case 2:cout<<"已出队一个元素"<<endl; s.De();break;
case 3:cout<<"队头元素:"<<endl;cout<<s.Get()<<endl;break;
case 4:i=0;break;
default:cout<<endl;break;
}}
while(i!=0);
return 0;
}
顺序队
最新推荐文章于 2023-04-12 21:55:21 发布