/* *Johnny A. Shaieb *CS2003 *Lab8 *Sahasa */ public class Towers { private int num; private String source; private String dest; private String spare; public Towers() { num = 0; source = ""; dest = ""; spare = ""; } public Towers(int n, String s1, String s2, String s3) { num = n; source = s1; dest = s2; spare = s3; } public void printMembers() { System.out.println(num + " " + source + " " + dest + " " + spare); } public static void main(String args[]) { StackArrayBased stack = new StackArrayBased(); Towers t = new Towers(5, "A", "B", "C"); t.printMembers(); if(stack.isEmpty()) { stack.push(t); } while(!stack.isEmpty()) { Towers disks = (Towers)stack.pop(); if(disks.num == 1) { System.out.println("Move a disk from POLE " + disks.source + " To POLE " + disks.dest); } else { stack.push(new Towers(disks.num - 1, disks.spare, disks.dest, disks.source)); stack.push(new Towers(1, disks.source, disks.dest, disks.spare)); stack.push(new Towers(disks.num - 1, disks.source, disks.spare, disks.dest)); } } } }