Implementation of Tower of Hanoi Algorithm using Recursion in C++

CWC
2 Min Read

Here is simple program explaining implementation of Tower of Hanoi algorithm using recursion in C++.

First we need to know that what are the Rules of Tower of Hanoi:

  • Only a single disc is allowed to be transferred at a time.
  • Each transfer or move should consists of taking the upper disk from one of the stack and then placing it on the top of another stack i.e. only a top most disk on the stack can be moved.
  • Larger disk cannot be placed over smaller disk; placing of disk should be in increasing order.

A, B and are rods or pegs and n is the total number of discs, 1 is the largest disk and 5 is the smallest one.

  1. Move n-1 discs from rod A to B using C as intermediate rod.
  2. Move nth disc from A to C rod.
  3. Move n-1 disc from B to C using A as intermediate rod.

In the program source code, tower_fun() is a recursive function with four arguments namely n, tx, ty and tz.

Main program: When you will run the code you will see a line in console

“Enter the no. of disks::”. You need to give number of disks you want to put in in A rod at program initial time.

tower obj(no); By this line you will create  an object of class tower and initialize the number of disks using variable “no”.

obj.disp_tower(); This line will call tower classes function disp_tower() and it will display initial values in A rod. Example. Let’s we give tower obj(3); then disp_tower() function will print 3, 2, 1

obj.tower_fun(no,1,2,3); This line will call tower_fun() function with four parameters and it’s our main function and recursive function.

Recursive function calls itself until the condition is true or is a potential cycle of function calls.

Download Source Code Implementation of Tower of Hanoi algorithm using recursion in C++

[sociallocker]
Download Source Code Implementation of Tower of Hanoi algorithm using recursion in C++
Password: codewithc.com
[/sociallocker]

Share This Article
1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

English
Exit mobile version