在一行输入若干个队列元素值,调用入队函数把输入的元素值入队,用−1表示输入结束(−1不属于队列)。
输出分两行:
第一行输出队头元素。如队列为空,输出NULL。
第二行依次输出出队元素,直到队列为空。元素间以空格分隔,队列为空时输出NULL。
1 3 5 7 9 -1
Head:1
Pop:1 3 5 7 9 NULL
-1
Head:NULL
Pop:NULL
有点取巧的路子,不适用题目中给的链队列,直接用STL中的queue~~
首先构建一个整数队列,然后不断读取输入元素并将它们入队,最后按照要求输出队头元素和出队元素。如果队列为空,就输出"NULL"表示队列为空
创建一个整数队列
通过循环输入队列元素:使用一个循环,不断读取输入的整数值(cin >> tmp),并将它们入队(q.push(tmp))。如果输入的值是-1,则表示输入结束,退出循环。
检查队列是否为空:通过 q.empty() 检查队列是否为空。如果队列为空,表示没有入队元素,因此输出"Head:NULL"和"Pop:NULL"。
如果队列非空,输出队头元素和出队元素:首先,输出队头元素(q.front()),然后使用一个循环遍历队列中的元素,输出它们并出队(q.pop())。最后输出"NULL"。
#include
#include
using namespace std;
int main()
{
queue<int> q;
int tmp =0;
cin>>tmp;
while(tmp != -1)
{
q.push(tmp);
cin>>tmp;
}
if(q.empty())
{
cout<<"Head:NULL"<<endl<<"Pop:NULL";
}
else
{
cout<<"Head:"<<q.front()<<endl<<"Pop:";
while(!q.empty())
{
cout<<q.front()<<" ";
q.pop();
}
cout<<"NULL";
}
return 0;
}