TowersOfHanoiConsole

# TowersOfHanoiConsole - Solve the problem of moving the...

This preview shows page 1. Sign up to view the full content.

> /* This applet lists the steps in the solution of the TowersOfHanoi problem, for a given number of disks. It is meant as an example of recursion. */ * public class TowersOfHanoiConsole extends ConsoleApplet { public void program() { int N; // The number of disks in the original stack, // as specified by the user. console.putln("This applet will list the steps in the solution of"); console.putln("the Towers of Hanoi problem. You can specify the"); console.putln("number of disks to be moved. Try it for small numbers"); console.putln("of disks, like 1, 2, 3, and 4."); console.putln(); console.putln("How many disks are to be moved from Stack 0 to Stack 1?"); console.putln(); console.put("? "); N = console.getInt(); console.putln(); console.putln(); TowersOfHanoi(N, 0, 1, 2); // Print the solution. } // end program() void TowersOfHanoi(int disks, int from, int to, int spare) {
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: // Solve the problem of moving the number of disks specified // by the first parameter from the stack specified by the // second parameter to the stack specified by the third // parameter. The stack specified by the fourth parameter // is avaialable for use as a spare. if (disks == 1) { // There is only one disk to be moved. Just move it. console.putln("Move a disk from stack number " + from + " to stack number " + to); } else { // Move all but one disk to the spare stack, then // move the bottom disk, then put all the other // disks on top of it. TowersOfHanoi(disks-1, from, spare, to); console.putln("Move a disk from stack number " + from + " to stack number " + to); TowersOfHanoi(disks-1, spare, to, from); } } } // end class TowersOfHanoiConsole....
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online