这会将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);
}
答案 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上找到更多经过优化和编写良好的代码。