数据结构学习(2):汉诺塔问题
using System;
namespace Hanoi
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
moveTowers(3/*disks*/,/*from peg*/1,/*to peg*/3,/*using spare peg*/2);
Console.ReadLine();
}
public static void moveTowers(int n,int start,int finish,int spare)
{
//利用作为辅助的备用柱子将位于起始
//柱子的n个圆盘移到终止柱子上
if(n==1)
{
Console.WriteLine("move a disk from peg"+start+"to peg"+finish);
}
else
{
moveTowers(n-1,start,spare,finish);
Console.WriteLine("move a disk from peg "+start+"to peg"+finish);
moveTowers(n-1,spare,finish,start);
}
}
}
}
namespace Hanoi
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
moveTowers(3/*disks*/,/*from peg*/1,/*to peg*/3,/*using spare peg*/2);
Console.ReadLine();
}
public static void moveTowers(int n,int start,int finish,int spare)
{
//利用作为辅助的备用柱子将位于起始
//柱子的n个圆盘移到终止柱子上
if(n==1)
{
Console.WriteLine("move a disk from peg"+start+"to peg"+finish);
}
else
{
moveTowers(n-1,start,spare,finish);
Console.WriteLine("move a disk from peg "+start+"to peg"+finish);
moveTowers(n-1,spare,finish,start);
}
}
}
}