Data Structures and Algorithms - Old Questions

4. Consider the function:

Void transfer (int n, char from, char to, char temp)

{

   if (n > 0)

    {

       transfer ( n – 1, from, temp, to);

       Printf ( “Move Disk % d from % C to % C” N, from, to);

        transfer ( n – 1, temp, to, from);

      }

}

Trace the output with the function Call:

          transfer ( 3, "R‟, "L‟, „"C‟);

5 marks | Asked in 2066

Function call:

   transfer ( 3, "R‟, "L‟, „"C‟);

Output:

Move Disk 1 from R to L

Move Disk 2 from R to C

Move Disk 1 from L to C

Move Disk 3 from R to L

Move Disk 1 from C to R

Move Disk 2 from C to L

Move Disk 1 from R to L

It can be shown in figure as: