栈的反转

来源:互联网 发布:ubuntu 卸载自带jdk 编辑:程序博客网 时间:2024/05/16 23:43

实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。

给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。

测试样例:
[4,3,2,1],4
返回:[1,2,3,4]

class StackReverse {public:    vector<int> reverseStack(vector<int> A, int n) {        reverse(A);        return A;    }    void reverse(vector<int> &s){  //实现栈的逆序        if(s.empty())            return;        int i=get(s);        reverse(s);        s.push_back(i);    }    int get(vector<int> &s){  //将栈底元素返回并删除        int result=s.back();//得到数组的最后一个数字        s.pop_back();       //去掉数组的最后一个数据        if(s.empty())            return result;        else{            int last=get(s);            s.push_back(result);            return last;        }      }};


原创粉丝点击