coding interview guide-仅用递归函数和栈操作逆序一个栈-c++实现

来源:互联网 发布:倩女幽魂手游 mac登陆 编辑:程序博客网 时间:2024/05/18 03:50

题目:一个栈依次压如1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1.将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。
算法详解:见程序员代码面试指南-左程云。 page:8-9;
c++实现代码:

using namespace std;template <typename T>T GetAndRemovalLastElement(stack<T>& stk1){    auto ele=stk1.top();    stk1.pop();    if(stk1.empty())       return ele;    else{        auto last = GetAndRemovalLastElement(stk1);        stk1.push(ele);        return last;    }}template <typename T>void rever_sequence(stack<T>& stk2){    if(stk2.empty())        return ;    else{        T i=GetAndRemovalLastElement(stk2);        rever_sequence(stk2);        stk2.push(i);    }}
0 0
原创粉丝点击