zoukankan      html  css  js  c++  java
  • 【编程题目】颠倒栈☆

    66.颠倒栈(栈)。
    题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1 在栈顶。
    颠倒之后的栈为{5, 4, 3, 2, 1},5 处在栈顶。

    思路:我自己没做出来,因为总觉得用不上递归。看了网上答案http://blog.csdn.net/cxllyg/article/details/7655935 根据里面的思路 自己照着写了一遍

    /*
    66.颠倒栈(栈)。
    题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1 在栈顶。
    颠倒之后的栈为{5, 4, 3, 2, 1},5 处在栈顶。
    */
    
    //自己没有理解用递归的含义 看了网上的答案http://blog.csdn.net/cxllyg/article/details/7655935
    
    #include <iostream>
    #include <vector>
    using namespace std;
    
    void pushToStackBottom(vector<int> & stack, int t)
    {
        if (stack.empty())
        {
            stack.push_back(t);
        }
        else
        {
            int T = stack.back();
            stack.pop_back();
            pushToStackBottom(stack, t);
            stack.push_back(T);
        }
    }
    
    void reverseStack(vector<int> &stack)
    {
        if (!stack.empty())
        {
            int t = stack.back();
            stack.pop_back();
            reverseStack(stack);
            pushToStackBottom(stack, t);
        }
    }
    
    int main()
    {
        vector<int> s;
        s.push_back(1);
        s.push_back(2);
        s.push_back(3);
        s.push_back(4);
        s.push_back(5);
    
        reverseStack(s);
        return 0;
    }
  • 相关阅读:
    跨页传值另一种方法
    运行nodejs的blog程序遇见问题
    nodejs和mongodb实践
    mongodb数据库实践笔记
    两次分页显示内容——先少后多显示
    Java进阶4表达式中的陷阱
    Java进阶3. 内存回收机制
    Java进阶1. Synchronized 关键字
    Java复习9网路编程
    Java复习8.多线程
  • 原文地址:https://www.cnblogs.com/dplearning/p/3916861.html
Copyright © 2011-2022 走看看