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

来源:互联网 发布:淘宝退款发空包教程 编辑:程序博客网 时间:2024/06/06 05:30

从新开始学习Java了,前面学的东西都比较简单了,所以空闲时间就比较多了。闲下来的时候准备看本算法书。这些算法都是从一个叫《程序员代码面试指南IT名企算法与数据结构题目最优解著》的书中总结来的。接下来就是实现如何仅用递归函数和栈操作逆序一个栈。





package com.an.stack;import java.util.Stack;public class TestDiGui {public static void main(String[] args) {Stack<Integer> stack = new Stack<Integer>();stack.push(1);stack.push(2);stack.push(3);//向栈内压入1 2 3 三个数字reverse(stack);//将栈内元素逆序System.out.println(stack);//输出时就是从栈底到栈顶进行输出}//每次得到栈中最后一个元素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);}}




阅读全文
0 0
原创粉丝点击