Tower of Hanoi
Algorithm
input Number of disk output Print: disk moved successfully complexity O(n). Tower(n , beg , aux , end) 1. If (n=1) then Beg = end; Return; 2. Call Tower(n-1 , beg ,end , aug ); 3. Call Tower (1 ,beg ,aux ,end ); 4. Call Tower (n-1,aux ,beg ,end);
Algorithm Description
C++ Code
#include <iostream>
using namespace std;
// recursive function for tower of hanoi
void towerofhanoi(char beg,char end,char spare,int n)
{
if(n==1)
{
cout<<n<<" moved from "<<beg<<"->"<<end<<"\n";
return;
}
else
{
towerofhanoi(beg,spare,end,n-1);
cout<<n<<" moved from "<<beg<<"->"<<end<<"\n"; //Move remaining disk from A->C
towerofhanoi(spare,end,beg,n-1); //Move n-1 disk from B->C using A as Spare
}
}
//end of function
// start of main program
int main()
{
towerofhanoi('A','B','C',6);
}
// end of main program