So i have created a towers of hanoi problem using recursion

So i have created a towers of hanoi problem using recursion but i have to use stacks to represent the pegs and ints to represent the disks, and “A,” “B,” and “C,” as labels for the pegs. I can use the stacks class built into Java but i am confused on how to use it with the code that i have already written and it fully works. How would I use stacks to represent stacks and the push and pop function to move the blocks.

import java.util.Scanner;

public class TowersofHanoi {

static int count = 0;
  
//Disk A = source, disk B = spare, disk C = dest
public static void Disk(int n, char A, char B, char C){
// If: disk == 1, then move the disk from the source to the dest
if (n == 1){
System.out.println(\"Move disk \" + n + \" from \" + A + \" to \" + C);
  
/*
Else: move n-1 disk from A to B, so basically B becomes C
temporarily and C becomes B. Then once that is done we move the largest
piece from A to C, then finally B becomes A temporarily and A becomes B
temporarily to move the pieces to the end which is C.
*/
} else {
  
Disk(n-1, A, C, B);
System.out.println(\"Move disk \" + n + \" from \" + A + \" to \" + C);
Disk(n-1, B, A, C);
}
count++; //keeps a count for the number of moves made.
}
//This is the main method that takes in the user input of how many disks that
//the player would like to use.
public static void main(String[] args) {
int n;
Scanner kb = new Scanner(System.in);
System.out.print(\"Enter the number of disks: \");
n = kb.nextInt();
System.out.println(\"These are the moves that need to be made: \");
Disk(n, \'A\', \'B\', \'C\' );
System.out.println(count + \"-Is the total number of moves that were made. \");
}
  
}

Solution

import java.util.Scanner;

public class TowersofHanoi {

   public static void main(String[] args) {

      int nDisks = 3;

      doTowers(nDisks, \'A\', \'B\', \'C\');

   }

   public static void doTowers(int topN, char from,

   char inter, char to) {

      if (topN == 1){

         System.out.println(\"Disk 1 from \"

         + from + \" to \" + to);

      }else {

         doTowers(topN - 1, from, to, inter);

         System.out.println(\"Disk \"

         + topN + \" from \" + from + \" to \" + to);

         doTowers(topN - 1, inter, from, to);

      }

   }

}

So i have created a towers of hanoi problem using recursion but i have to use stacks to represent the pegs and ints to represent the disks, and “A,” “B,” and “C
So i have created a towers of hanoi problem using recursion but i have to use stacks to represent the pegs and ints to represent the disks, and “A,” “B,” and “C

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site