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

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

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;
}
全部评论

相关推荐

点赞 评论 收藏
分享
码农索隆:想看offer细节
点赞 评论 收藏
分享
求offer的大角牛:简历写的第一乱,没有突出重点,第二项目太多太杂看不出来有啥核心技术,第三自我评价太多了,第四获得的荣誉没啥含金量,可以不写,反正问题不少
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务