队列基本操作
总时间限制:
1000ms
单个测试点时间限制:
500ms
内存限制:
5000kB
描述
输入若干个整数(小于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 <iostream>
using namespace std;
struct Node{
int data;
Node*next;
};
class Link{
public:Link();
void Enqueue(int x);
int Dequeue();
void Print();
private:Node*front,*rear;
};
Link::Link(){
front = new Node;
front->next = NULL;
rear = front;
}void Link::Enqueue(int x){
Node*s;
s = new Node;
s->data = x;
s->next = NULL;
rear->next = s;
rear = s;
}int Link::Dequeue(){
Node*p;
p = new Node;
int x;
p = front->next;
x = p->data;
front->next = p->next;
delete p;
if(front->next==NULL)
rear = front;
return x;
}void Link::Print(){
Node*p;
p = new Node;
p->next = front->next;
p = p->next;
while(p!=NULL){
cout<<p->data<<" ";
p = p->next;
}cout<<endl;
}int main(){
Link S;
int n;
while(cin>>n){
if(n>=10&&n<=99){
S.Enqueue(n);
}if(n==-1){
S.Dequeue();
}if(n==-2){
S.Print();
}if(n==-3)
break;
}
}