关注
汉诺塔问题跟树的LDR遍历一个道理 1.对于单个情形,也就是最大的圆盘的情形,直接从A移动到C,因此直接打印移动的方法即可,并且返回 2.对于两个圆盘的情形,分为三步进行: (1)从A移动到B一个 (2)从A移动到C一个 (3)将B中暂存的移动到C 因此跟BST的递归LDR遍历非常像,此时我们的调用打印应该为三步: (1)打印A-B (2)打印A-C (3)打印B-C 因此我的递归为: hanoi(n-1,A,C,B);
printf当前A-C;
hanoi(n-1,B,A,C); void hanoi(int n,char A,char B,char C){
if(n<=1){
printf("1 move %c to %c\n",A,C);
return;
}
hanoi(n-1,A,C,B);
printf("%d move %c to %c\n",n,A,C);
hanoi(n-1,B,A,C);
} 这样可以输出每一次的移动情况,如果只需要次数,不输出,累加个数即可
查看原帖
点赞 1
相关推荐
10-25 09:58
中国科学技术大学 算法工程师 点赞 评论 收藏
分享
汉献帝刘协:公积金随便提的吧,我这里一年可以全提出来一次,不用离职,不用交什么证明,北京不至于那么恶心你
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
456357次浏览 4666人参与
# 如何排解工作中的焦虑 #
72686次浏览 1012人参与
# 地方国企笔面经互助 #
8489次浏览 18人参与
# 找工作时遇到的神仙HR #
566325次浏览 3855人参与
# 同bg的你秋招战况如何? #
84982次浏览 626人参与
# 你上一次加班是什么时候? #
23042次浏览 185人参与
# 虾皮求职进展汇总 #
125404次浏览 931人参与
# 设计人的面试记录 #
75047次浏览 961人参与
# 比亚迪工作体验 #
45294次浏览 214人参与
# 实习,投递多份简历没人回复怎么办 #
2460853次浏览 34898人参与
# 你的秋招进展怎么样了 #
1716954次浏览 24782人参与
# 什么专业适合考公 #
14842次浏览 115人参与
# 如果公司给你放一天假,你会怎么度过? #
5002次浏览 65人参与
# 现在还是0offer,延毕还是备考 #
827008次浏览 6927人参与
# 大疆求职进展汇总 #
420391次浏览 2967人参与
# 投递实习岗位前的准备 #
1198318次浏览 18564人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
12910次浏览 337人参与
# 百度秋招提前批进度 #
88046次浏览 1048人参与
# 你最近一次加班是什么时候? #
22363次浏览 203人参与
# 提前批简历挂麻了怎么办 #
150573次浏览 1984人参与