使用递归逆序一个栈

来源:互联网 发布:python的join函数 编辑:程序博客网 时间:2024/05/23 18:31

为什么总是理解不好递归呢!

题目是:一个栈一次压入1,2,3,则栈顶到栈底就是3,2,1,将这个栈转置后,栈顶到栈底变为1,2,3

#include<iostream>using namespace std;#include<stack>//将栈的栈底元素返回并移除int getAndRemoveLastElement(stack<int>& s){ int res=s.top(); s.pop(); if(s.empty())return res;else{int last=getAndRemoveLastElement(s);s.push(res);return last;}}void reverse(stack<int>& s){if(s.empty())return;int i=getAndRemoveLastElement(s);reverse(s);s.push(i);}int main(){stack<int> s;s.push(1);s.push(2);s.push(3);reverse(s);system("pause");return 0;}


0 0
原创粉丝点击