java数据结构和算法中文第二版
TowerApp.java
package com.ch6.tower;
public class TowerApp {
private static int nDisks = 3 ;
public static void doTowers(int topN , char from , char inter, char to){
if (1 == topN){
System.out.println("Disk 1 from 【" + from + "】 to 【" + to + "】" ) ;
}else{
doTowers(topN -1, from, to, inter) ;
System.out.println( topN + " is returned . 1 ") ;
System.out.println("Disk " + topN + " from 【" + from + "】 to 【" + to + "】");
doTowers(topN -1, inter, from , to) ;
System.out.println( topN + " is returned . 2 ") ;
}
}
/**
* @param args
*/
public static void main(String[] args) {
doTowers(nDisks, 'A', 'B', 'C') ;
}
}
运行结构
//以下是topN = 3的 doTowers(topN -1, from, to, inter) ;执行结果
Disk 1 from 【A】 to 【C】
2 is returned . 1
Disk 2 from 【A】 to 【B】
Disk 1 from 【C】 to 【B】
2 is returned . 2
3 is returned . 1
Disk 3 from 【A】 to 【C】
//以下是topN = 3的 doTowers(topN -1, inter, from , to) ;执行结果
Disk 1 from 【B】 to 【A】
2 is returned . 1
Disk 2 from 【B】 to 【C】
Disk 1 from 【A】 to 【C】
2 is returned . 2
3 is returned . 2