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