⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hanoi.java

📁 已经编写好的数据结构课本程序可以减轻您的负担
💻 JAVA
字号:
// =============== Program Description ===============
// 程序名称: hanoi.java
// 程序目的: 运用递归来解河内塔问题。            
// Written By Kuo-Yu Huang. (WANT Studio.)            
// ===================================================
import ConsoleReader.*;					// 导入已定义的数据输入类

public class hanoi
{
	public static int Counter;			// 计数器变量
	public static void main (String args[])
	{
		int	NumberDisk;			// 铁盘数目变量
		String	Source = new String();		// 来源桩变量
		String	Destination = new String();	// 目的桩变量
		String	Auxiliary = new String();	// 辅助桩变量

		Counter = 0;
		System.out.println("The Tower of Hanoi program.");
		System.out.print("Please enter the number of disks : ");	
							// 输入铁盘数
		ConsoleReader console = new ConsoleReader(System.in);
		NumberDisk = console.readInt();	
				
		System.out.print("The Source peg : ");
		Source = console.readLine();		// 输入来源桩
		
		System.out.print("The Auxiliary : ");		
		Auxiliary = console.readLine();		// 输入辅助桩
		
		System.out.print("The Destination : ");
		Destination = console.readLine();	// 输入目的桩

							// 调用递归函数
		Hanoi(Source,Destination,Auxiliary,NumberDisk);
	}
	
// ---------------------------------------------------
// 递归解河内塔问题                                 
// ---------------------------------------------------
	public static void Hanoi(String From,String To,String Auxiliary,int N)
	{
		if ( N == 1 )				// 递归结束条件
		{
			Counter++;			// 计数器递增
			System.out.print("Step "+Counter+" : ");
			System.out.print("Move disk 1 from peg-"+From);
			System.out.println(" to peg-"+To);
		}
		else					// 递归执行部分
		{
							// 将目的桩和辅助桩交换
			Hanoi(From,Auxiliary,To,N-1);
			Counter++;			// 计数器递增
			System.out.print("Step "+Counter+" : ");
			System.out.print("Move disk 1 from peg-"+From);
			System.out.println(" to peg-"+To);
							// 将来源桩和辅助桩交换
			Hanoi(Auxiliary,To,From,N-1);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -