PTA:数据结构实验 一 链队列

输入格式

在一行输入若干个队列元素值,调用入队函数把输入的元素值入队,用−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"表示队列为空

  1. 创建一个整数队列

  2. 通过循环输入队列元素:使用一个循环,不断读取输入的整数值(cin >> tmp),并将它们入队(q.push(tmp))。如果输入的值是-1,则表示输入结束,退出循环。

  3. 检查队列是否为空:通过 q.empty() 检查队列是否为空。如果队列为空,表示没有入队元素,因此输出"Head:NULL"和"Pop:NULL"。

  4. 如果队列非空,输出队头元素和出队元素:首先,输出队头元素(q.front()),然后使用一个循环遍历队列中的元素,输出它们并出队(q.pop())。最后输出"NULL"。

代码

#include<iostream>
#include<queue>
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;
}

猜你喜欢

转载自blog.csdn.net/m0_74195626/article/details/133849815