{A}
AlgoViz
首页
路线图
题单
教程
题目
可视化
错题本
进度
登录
加载中…
汉诺塔 Tower of Hanoi
递归分治:将 A 柱的圆盘全部移到 C 柱,每次只移一个且大盘不能压小盘。
圆盘数:
(1–8)
速度:
0.5x
1x
2x
4x
A
(源)
4
3
2
1
B
空
C
(目标)
空
将 4 个圆盘从 A 柱全部移到 C 柱(每次只移一个,且大盘不能压小盘)
步骤 1 / 17
将 4 个圆盘从 A 柱全部移到 C 柱(每次只移一个,且大盘不能压小盘)
算法代码
复制代码
当前高亮行:
1
(将 4 个圆盘从 A 柱全部移到 C 柱(每次只移一个,且大盘不能压小盘))
1
function
move(n, from, aux, to) {
2
if
(n ===
1
) { to.push(from.pop());
return
; }
3
move(n -
1
, from, to, aux);
4
to.push(from.pop());
5
move(n -
1
, aux, from, to);
6
}