问题遇到的现象和发生背景
要求将递归转化为堆栈问题解决汉诺塔
问题相关代码
运行结果及报错内容
如何调整参数使代码正常运行
要求将递归转化为堆栈问题解决汉诺塔
如何调整参数使代码正常运行
class Stack:
def __init__(self):
self.data = []
def is_empty(self):
return len(self.data) == 0
def push(self, n):
self.data.append(n)
def pop(self):
if self.is_empty():
return None
else:
return self.data.pop()
def Hanoi(n):
A = 'A'
B = 'B'
C = 'C'
move = Stack()
# condition1 = (n, A, B, C)
# condition2 = (n - 1, B, A, C)
# condition3 = (n - 1, A, C, B)
# condition4 = (1, A, B, C)
move.push((n, A, B, C))
while move.is_empty() == False:
(n, A, B, C) = move.pop()
if n == 1:
print (A, '-->', C)
else:
move.push((n - 1, B, A, C))
move.push((1, A, B, C))
move.push((n - 1, A, C, B))
Hanoi(3)