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

来源:互联网 发布:淘宝oem化妆品能用不 编辑:程序博客网 时间:2024/06/06 01:02

  仅用递归函数和栈操作逆序一个栈

  (1) getAndRemoveLastElement()函数


(2) reverse()函数


(3)完整代码如下:

import java.util.Stack;//仅用递归函数和栈操作逆序一个栈public  class ReverseStack{        //将栈的栈底元素返回并移除    public static int getAndRemoveLastElement(Stack<Integer> stack)    {       int result=stack.pop();       if(stack.isEmpty())       {       return result;       }else       {         int last=getAndRemoveLastElement(stack); //递归调用         stack.push(result);         return last;       }    }    //逆序一个栈    public static void reverse(Stack<Integer>stack)    {    if(stack.isEmpty())    {    return ;    }    int i=getAndRemoveLastElement(stack);        reverse(stack); //递归调用    stack.push(i);    }public static void main(String [] args){          Stack <Integer> stack=new Stack<Integer>();          stack.push(1);          stack.push(2);          stack.push(3);          //逆序一个栈          reverse(stack);           while(!stack.isEmpty())          {          System.out.println(stack.pop());          }                }}


阅读全文
0 0