关注
汉诺塔问题跟树的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);
} 这样可以输出每一次的移动情况,如果只需要次数,不输出,累加个数即可
点赞
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
01-05 20:07
西安电子科技大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 今年春招是金一银二嘛? #
20745次浏览 218人参与
# 总结:哪家公司面试体验感最好 #
79194次浏览 444人参与
# 没关系,至少我的__很曼妙 #
8914次浏览 144人参与
# 你是怎么和mt相处的? #
89771次浏览 459人参与
# 赚钱的意义在这一刻具象化 #
9261次浏览 197人参与
# 来聊聊你目前的求职进展 #
717604次浏览 6986人参与
# 比亚迪工作体验 #
80066次浏览 293人参与
# AI求职实录 #
12677次浏览 334人参与
# 快手年终开大包 #
2969次浏览 46人参与
# 抛开难度不谈,你最想去哪家公司? #
11363次浏览 196人参与
# 考研人,我有话说 #
163471次浏览 1240人参与
# 1月小结:你过的开心吗? #
3951次浏览 78人参与
# 为什么有人零实习也能进大厂? #
10794次浏览 209人参与
# 你的第一家实习公司是什么档次? #
9390次浏览 114人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
13405次浏览 337人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
6947次浏览 216人参与
# 牛客吐槽大会 #
7803次浏览 127人参与
# 你的landing期是如何度过的? #
13402次浏览 260人参与
# 实习最想跑路的瞬间 #
112412次浏览 690人参与
# 除了Java,最推荐学什么技术? #
11622次浏览 227人参与
