题解 | #用递归函数和栈逆序一个栈#

用递归函数和栈逆序一个栈

http://www.nowcoder.com/practice/1de82c89cc0e43e9aa6ee8243f4dbefd

#include<bits/stdc++.h>
using namespace std;

int popb(stack<int>&s)
{
    int top = s.top();
    s.pop();
    if(s.empty())
    {
        return top;
    }
    int t = popb(s);
    s.push(top);
    return t;
}
void reverse(stack<int>&s)
{
    if(s.empty())
    {
        return;
    }
    int t = popb(s);
    reverse(s);
    std::cout << t << " "; // 这个输出就很鸡肋了。
    s.push(t);
    return;
}

int main()
{
    int n,x;
    cin>>n;
    stack<int>s;
    while(n--)
    {
        cin >> x;
        s.push(x);
    }
    
    reverse(s);
    
//     while(!s.empty())
//     {
//         std::cout<< s.top() << " ";
//         s.pop();
//     }
    
    
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务