/*
Move disk 'diskNumber' from startPost to endPost using
midPost for temporary storage. Disk 1 is the smallest disk.
*/
MoveDisk(diskNumber, startPost, endPost, midPost)
{
if (diskNumber > 1) {
/* Move n-1 disks off the current disk (on startPost) and
put them on the intermediate post (midPost) */
MoveDisk(diskNumber-1, startPost, midPost, endPost); /* -- A -- */
/* Move the largest disk. */
printf("Move disk number %d from post %d to post %d.\n",
diskNumber, startPost, endPost);
/* Move all n-1 disks onto the end post */
MoveDisk(diskNumber-1, midPost, endPost, startPost); /* -- B -- */
}
else
printf("Move disk number 1 from post %d to post %d.\n",
startPost, endPost);
}