汉诺塔用回溯算法解决
class Solution {
public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {
move(A, B, C, A.size());
}
public void move(List<Integer> a, List<Integer> b, List<Integer> c, int n) {
if(n == 1) {
c.add(a.get(a.size() - 1));
a.remove(a.size() - 1);
return;
}
move(a, c, b, n - 1);
c.add(a.get(a.size() - 1));
a.remove(a.size() - 1);
move(b, a, c, n -1);
}
}
相关推荐
用MFC写的汉诺塔演示图程序
用C++MFC写的一个汉诺塔的演示程序,可以支持更改数量的
商业编程-源码-汉诺塔的动画TC2.0.zip
商业编程-源码-汉诺塔的动画TC2.0.zip
一个简单的汉诺塔小游戏
就是一个用Java写的汉诺塔小游戏,大家测试下,有用到回溯和简单的线程。
汉诺塔演示程序(MFC)
汉诺塔演示程序,开发环境VS2015,用MFC实现,可演示盘子的移动,也可单步查看盘子的移动。程序仅演示盘子个数为2-7,太大也没意义。可根据需求修改。
移动3根柱子的汉诺塔问题算法
汉诺塔问题算法,移动3根柱子的汉诺塔问题算法源码,。说明:这是3根柱子的汉诺塔问题算法!如果是4根柱子的话算法又不一样了。请在输入框内输入2~64之间的盘子数,太大了可能很慢呀!。@易语言学习网。


