Towers of Hanoi consists of three poles with discs of different sizes. The key rule is that a larger disc must never be on top of a smaller disc. The goal is to move all of the discs from one pole to another.

Poles are represented by stacks of Integer objects. Discs are represented by integers; the higher the integer the larger the disc. For this assignment you will implement a recursive and iterative solution to Towers of Hanoi. The recursive solution is the easiest to program, and is discussed many places in literature and online. The iterative solution is harder to program, since you must emulate the recursive action by using an explicit stack to store the state of the algorithm. In the recursive solution, this state is managed by the runtime stack of your programming language.