面试算法——4.栈的反转
2015-12-08 10:03
447 查看
将已知的栈,利用递归实现反转。
附加字符串的反转,总结反转的递归思路。
附加字符串的反转,总结反转的递归思路。
package ch_1_stackandqueue; import java.util.Stack; public class Pro_3_ReverseStack { private int getLastElement(Stack<Integer> stack) { int res=stack.pop(); if(stack.isEmpty()) { return res; } else { int last=getLastElement(stack); stack.push(res); return last; } } public void reverse(Stack<Integer> stack) { if(stack.isEmpty()) { return; } else { int i = getLastElement(stack); reverse(stack); stack.push(i); System.out.println(i); } } public String reverse_String(String string) { if(string.length()<=0) { return ""; }else { return string.charAt(string.length()-1)+reverse_String(string.substring(0,string.length()-1)); } } static Stack<Integer> stack; public static void main(String[] args) { // TODO Auto-generated method stub Pro_3_ReverseStack test = new Pro_3_ReverseStack(); //将顺序反转,一般递归思路是将最后一个特殊处理 //剩下部分再反转 //递归终止条件是为空 //System.out.println(test.reverse_String("123"));; stack = new Stack<>(); stack.push(1); stack.push(2); stack.push(3); stack.push(4); test.reverse(stack); /*while(!stack.isEmpty()) { System.out.println(stack.pop()); }*/ } }
相关文章推荐
- 面试算法——6.Mingo Game
- 传智播客展望2016年大学毕业生求职现状
- 黑马程序员——Java重点基础之IO流(三)
- Java 程序员们值得一看的好书推荐[转载]
- 面试最后如何向面试官发问?
- <黑马程序员> 第九篇:反射
- 黑马程序员-C学习日记-数组
- 如何让你的程序员不要厌倦工作?
- 一位求职者发来的感谢信
- 慢腾腾成长的程序员
- 黑马程序员——Java重点基础之IO流(二)
- 黑马程序员——OC之self关键字、多态
- 黑马程序员——Java重点基础之IO流(一)
- 黑马程序员——java基础之继承和多态
- 黑马程序员--第四篇:包、权限修饰符、内部类、匿名内部类
- 黑马程序员—java基础复习—基础知识
- 黑马程序员--IO其他流
- 黑马程序员--第三篇:多态、抽象类、接口
- 嵌入式经典面试题
- 一道面试题 有20个数组,每个有500个元素,升序排列,找出前500的数