如何从头到尾打印堆栈元素

时间:2018-12-15 16:42:30

标签: c++

这会将5个数字加到堆栈中,并反向打印

  

输入:1 2 3 4 5

     

输出:5 4 3 2 1

如何从1-5打印?

#include <iostream>
#include <stack>
using namespace std;

void print(stack <int> s)
{
    while (!s.empty())
    {
        cout << " " << s.top();
        s.pop();
    }
    cout << endl;
}

int main(){
    stack <int> s;
    int n;

    for (int i = 0; i < 5; i++)
    {
        cin >> n;
        s.push(n);
    }

    print(s);
}

1 个答案:

答案 0 :(得分:-2)

您的作业希望您反转堆栈。您可以在互联网上搜索“ c ++中的反向堆栈”并找到许多解决方案。

下面提供了void print(stack<int> s)的简单粗略解决方案:

void print(stack<int> s){
    stack<int> temp;
    while(!s.empty()){
        temp.push(s.top());
        s.pop();
    }
    while(!temp.empty()){
        cout<<" "<<temp.top();
        temp.pop();
    }
    cout<<endl;
}

此解决方案背后的算法非常简单。它创建一个临时堆栈,并将堆栈中的每个元素压入其中。现在,迭代并打印所有元素。

可以在Internet上找到更多经过优化和编写良好的代码。