Practice.3_YU My Queue

来源:互联网 发布:ftp服务器软件绿色版 编辑:程序博客网 时间:2024/05/21 22:59
/* B. My Queue 请实现一个MyQueue类,实现出队,入队,求队列长度. 实现入队函数 void push(int x); 实现出队函数 int pop(); 实现求队列长度函数 int size(); Input Specification: 每个输入包含1个测试用例。每个测试用例第一行给出一个正整数 n (n <= 10^6) ,接下去n行每行一个数字,表示一种操作: 1 x : 表示从队尾插入x,0<=x<=2^31-1。 2 : 表示队首元素出队。 3 : 表示求队列长度。 Output Specification: 对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素。 对于操作3,请输出队列长度。 Sample Input: 5 3 2 1 100 3 2 Sample Output: 0 Invalid 1 100 */#include <iostream>#include <iomanip>using namespace::std;struct node{    int num;    node* next;};class MyQueen{    node*head;public:    void push(int x);    void pop();    int size();}queen;void MyQueen::push(int x){    node *p=new node;    node*q;    p->num=x;    if(head==NULL)    {        head=p;        return;    }    for(q=head;q->next!=NULL;q=q->next);    q->next=p;}void MyQueen::pop(){    if(head==NULL)    {        cout<<"Invalid"<<endl;        return;    }    cout<<head->num<<endl;    head=head->next;    return;}int MyQueen::size(){    int count=0;    node* p;    for(p=head;p!=NULL;p=p->next,count++);    return count;}int main(){    int x,y,repeat;    cin>>repeat;    while(repeat--)    {        cin>>x;        switch (x) {            case 1:                cin>>y;                queen.push(y);                break;            case 2:queen.pop();break;            case 3:cout<<queen.size()<<endl;break;        }    }}}}

0 0
原创粉丝点击