1.4 逆序一个栈

来源:互联网 发布:玖玖爱六粮面淘宝 编辑:程序博客网 时间:2024/06/14 07:50

题目:一个栈依次压入12345,实现栈中元素逆序

解法一:开辟了一个新的栈作为辅助栈,将原栈中的元素依次弹出并压入到辅助栈中,最后返回辅助栈。

//逆序一个栈stack<int> reverseStack(stack<int> stackData){    //辅助栈    stack<int> temp;         while(!stackData.empty()){        temp.push(stackData.top());        stackData.pop();    }    return temp;}

解法二:不采用其他辅助数据结构,递归实现。

//每次返回栈底元素int fun1(stack<int> &s){    int result = s.top();    s.pop();    if(s.empty())        return result;    else{        int t = fun1(s);        s.push(result);        return t;    }}void fun2(stack<int> &s){    if(s.empty())        return;    else{        int a = fun1(s);        fun2(s);        s.push(a);    }}
0 0