zoukankan      html  css  js  c++  java
  • 栈和队列----用递归函数和栈的操作实现逆序一个栈

    用递归函数和栈的操作实现逆序一个栈

      一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1,将这个栈转置后,从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能使用递归函数来实现,不能实现其他数据结构。

    package com.test;
    
    import java.util.Stack;
    
    /**
     * Created by Demrystv.
     */
    public class ReverseStack {
    
        //将栈stack的栈底元素返回并且删除
        private static int getAndRemoveLastElement(Stack<Integer> stack){
            int result = stack.pop();
            if(stack.isEmpty()){
                return result;
            }else {
                int last = getAndRemoveLastElement(stack);
                stack.push(last);
                return last;
            }
        }
    
        //逆序一个栈
        public static void reverse(Stack<Integer> stack){
            if(stack.isEmpty()){
                return;
            }
            int i = getAndRemoveLastElement(stack);
            reverse(stack);
            stack.push(i);
        }
    }


  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    将Ojective-C代码移植转换为Swift代码
    Swift
    房费制——报表(1)
  • 原文地址:https://www.cnblogs.com/Demrystv/p/9286503.html
Copyright © 2011-2022 走看看