美文网首页
4_5栈的反转

4_5栈的反转

作者: X_Y | 来源:发表于2017-09-11 17:49 被阅读9次

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

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

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

class StackReverse {
public:
    int get(vector<int> &A)
    {
        int curr = A.back();
        A.pop_back();
        if(A.empty()){
            return curr;
        }else{
            int result = get(A);
            A.push_back(curr);
            return result;
        }
    }
    void reverseStack__(vector<int> &A){
        if(A.empty()){
            return;
        }
        int temp = get(A);
        reverseStack__(A);
        A.push_back(temp);
        return;
    }
    vector<int> reverseStack(vector<int> A, int n) {
        // write code here
        reverseStack__(A);
        return A;
    }
};

相关文章

  • 4_5栈的反转

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

  • 栈的反转

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

  • 链表反转

    链表反转的思路:1.利用栈后进先出的特性,将链表的每个节点都Push进栈,然后再Pop出栈,保存进链表,实现反转。...

  • 2020-02-09 刷题 3(字符串)

    344 反转字符串 用双指针原地反转,很简单 7 整数反转 标签:栈 字符串 溢出这个题目是一个典型的用栈的题,如...

  • 采用栈结构,递归实现链表的反转

    采用栈结构,递归实现链表的反转 CSDN

  • Java示例教程

    Java 实现栈stackJava 实现栈stack2Java 向量Vector 反转Java 向量Vector ...

  • 2022-02-24 025,024 链表反转,链表中的两数相

    链表反转:思路采用栈,而栈可以用slice的思路实现Go版本 链表两数相加:纯粹的反转相加,注意考虑类似于l1=[...

  • 栈问题之栈的反转

    1. 可以使用O(N)空间 可以使用队列这个很简单了,就是将栈每个元素依次pop放入队列中,然后从队列中依次pus...

  • 2022-01-09 链表

    链表定义: 反转链表:用到了之前写的ArrayDeque来当作栈使用,因为ArrayDeque的方法可以作栈和队列...

  • 巧用函数栈实现栈的反转

    一、函数栈 函数的调用过程其实就是一个压栈的过程,在函数栈中,每个函数所占空间成为一个 栈帧。栈帧中保存着函数的形...

网友评论

      本文标题:4_5栈的反转

      本文链接:https://www.haomeiwen.com/subject/kuyfsxtx.html