请实现一个MyQueue类,实现出队,入队,求队列长度.
实现入队函数 void push(int x); 实现出队函数 int pop(); 实现求队列长度函数 int size();
输入格式:
每个输入包含1个测试用例。每个测试用例第一行给出一个正整数 n (n <= 10^6) ,接下去n行每行一个数字,表示一种操作: 1 x : 表示从队尾插入x,0<=x<=2^31-1。 2 : 表示队首元素出队。 3 : 表示求队列长度。
输出格式:
对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素。 对于操作3,请输出队列长度。 每个输出项最后换行。
输入样例:
5
3
2
1 100
3
2
输出样例:
0
Invalid
1
100
#include<iostream>
#include<cstring>
using namespace std;
class MyQueue
{
int count=0;//让计数器属于类内成员,好调用
int num[500];//队列
public:
void push(int);
int pop();
int size();
};
void MyQueue::push(int x)//增加队列元素
{
num[count++]=x;
}
int MyQueue::pop()//队列头元素出列
{
if(count==0)//无元素时
return -1;
int x=num[0];
for(int i=0;i<count-1;i++)
num[i]=num[i+1];
count--;
return x;
}
int MyQueue::size()//count就是队列大小
{
return count;
}
int main()
{
int n,k;
cin>>n;
MyQueue text;//创建对象
int num;
for(int i=0;i<n;i++)
{
cin>>k;
switch(k)//用switch判断操作
{
case 1:
cin>>num;
text.push(num);
break;
case 2:
num=text.pop();
if(num==-1)
cout<<"Invalid"<<endl;
else
cout<<num<<endl;
break;
case 3:
cout<<text.size()<<endl;
}
}
}