汉诺塔的递归算法?要求源代码(朱站立数据结构上有)

[复制链接]
查看11 | 回复2 | 2011-8-5 10:03:39 | 显示全部楼层 |阅读模式
(朱站立数据结构上有)我忘记带了

回复

使用道具 举报

千问 | 2011-8-5 10:03:39 | 显示全部楼层
给个过程吧H(n,a,b,c)表示把n个盘子从a柱通过b柱挪到c柱需要的步数program H(n:longint;a,b,c:char):longint;beginif n=1 then
begin
writeln(a,'->',c);//一个盘子只需一步
exit;
end;H(n-1,a,c,b);//为了把它们移到c柱,先要通过c柱移到b柱,这你可以手工算一下inc(step);//步数加一writeln(a,'->',c); H(n-1,b,a,c); //再从b柱移到c柱end....
回复

使用道具 举报

千问 | 2011-8-5 10:03:39 | 显示全部楼层
#include void hanoi(int n,char from,char mid,char to){if(1 == n){printf("将编号为%d的盘子从%c的位置,移动到%c的位置\n",n,from,to);}else{hanoi(n-1,from,to,mid);printf("...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行