主题:求汉诺塔程序!
zhoubbss
[专家分:0] 发布于 2006-06-04 22:07:00
采用递归方法来显示出汉诺塔移动的步骤,谢谢!
回复列表 (共3个回复)
沙发
jzyray [专家分:20610] 发布于 2006-06-05 10:00:00
貌似数据结构与算法在讲递归的时候都有汉诺塔的例题
板凳
zhoubbss [专家分:0] 发布于 2006-06-09 16:32:00
参照C语言已经把程序开发出来了,但对递归还是不太清楚!惭愧
3 楼
psyuhen [专家分:0] 发布于 2007-12-01 14:52:00
private void Form7_Load(object sender, EventArgs e)
{
int num = Convert.ToInt32(textBox1.Text);
char B='1'; char C='2';char D='3';
Tower(num, B, C, D);
}
/// <summary>
/// 汉诺塔算法
/// </summary>
/// <param name="a">要移动的盘子的数量</param>
/// <param name="b">盘子开始放置的树桩</param>
/// <param name="c">盘子要被移到的树桩</param>
/// <param name="d">用做临时存放处的树桩</param>
public void Tower(int a, char b, char c, char d)
{
if (a == 1)
{
textBox2.Text += b + "->" + d + " \n";
}
else
{
Tower(a-1,b,d,c);
textBox2.Text+=b+"->"+d+" \n";
Tower (a-1,c,b,d);
}
}
我来回复