描述
输入若干个整数(小于50个),整数共有四种类型,不同类型的整数代表不同操作。说明如下:
1、[10,99]之间的整数:将该整数入队。
2、-1: 队首整数出队。
3、-2: 显示队列所有整数。
4、-3: 输入结束。
说明:采用链队列实现,必须有队列初始化函数、入队函数、出队函数。
输入
第一行若干整数(必须满足上述四种类型要求),以-3结束。
输出
输出队列中所有整数。
样例输入
13 25 90 -1 12 -2 -1 45 78 30 -2 -3样例输出
25 90 12 90 12 45 78 30
代码:
#include<bits/stdc++.h>
using namespace std;
struct Node
{
int data;
Node *next;
};
class LinkQueue
{
public:
LinkQueue();
void EnQueue(int x);
void DeQueue();
void show();
private:
Node *front,*rear;
};
LinkQueue::LinkQueue()
{
Node*s=NULL;
s=new Node;
s->next=NULL;
front=rear=s;
}
void LinkQueue::EnQueue(int x)
{
Node *s=NULL;
s=new Node;
s->data=x;
s->next=NULL;
rear->next=s;
rear=s;
}
void LinkQueue::DeQueue()
{
int x;
Node *p=NULL;
p=front->next;
x=p->data;
front->next=p->next;
if(p->next==NULL)
rear=front;
delete p;
}
void LinkQueue::show()
{
Node *p=front->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int main()
{
int n;
LinkQueue Q;
while(cin>>n&&n!=-3)
{
if(n>=10&&n<=99)
Q.EnQueue(n);
else if(n==-1)
Q.DeQueue();
else if(n==-2)
Q.show();
}
}