汉诺塔非递归解法

来源:互联网 发布:java无参构造函数实例 编辑:程序博客网 时间:2024/05/29 12:18
import java.util.Stack;//汉诺塔非递归解法(利用栈模拟递归)class Node{String from,to,mid;int count;int state;public Node(String from, String to,String mid, int count, int state) {super();this.from = from;this.to = to;this.mid=mid;this.count = count;this.state = state;}}public class Main {public static void main(String[] args) {// TODO Auto-generated method stubStack<Node> stack=new Stack<>();int N=20;stack.push(new Node("A", "B","C", N, 1));while(!stack.isEmpty()){Node node=stack.peek();if(node.count==1){System.out.println(node.from+"--->"+node.to);stack.pop();}else{if(node.state==1){stack.push(new Node(node.from, node.mid,node.to, node.count-1, 1));node.state=2;}else if(node.state==2){System.out.println(node.from+"--->"+node.to);node.state=3;stack.push(new Node(node.mid, node.to, node.from, node.count-1, 1));}else if(node.state==3){stack.pop();}}}}}

原创粉丝点击