Skip to content

Instantly share code, notes, and snippets.

@KerryJones
Created March 2, 2016 18:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KerryJones/7febf256bc5a9b192b12 to your computer and use it in GitHub Desktop.
Save KerryJones/7febf256bc5a9b192b12 to your computer and use it in GitHub Desktop.
Tower of Hanoi
class tower_of_hanoi:
tower1 = None
tower2 = None
tower3 = None
def __init__(self, n):
self.tower1 = Stack
self.tower2 = Stack
self.tower3 = Stack
for i in range(n, 1, -1):
self.tower1.push(i)
self.run(self.tower1, self.tower3, self.tower2)
def run(self, source, target, buffer, n):
if n <= 2:
buffer.push(source.pop())
target.push(source.pop())
target.push(buffer.pop())
else:
self.run(source, buffer, target, n-1)
target.push(source.pop())
self.run(buffer, target, source, n-1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment