K
kamvisiouma
Hi there, I'm fresh in learning c++ and I have to solve an exercise
with hanoi and my problem is that I'm running out of time!
The exercise is this, and I have to complete the ???
#include<stdio.h>
#define DISK_NUMBER 4
// There are 3 towers represents 3 stacks
// The names of the disks are represented by numbers (1,2,3,...,n)
// That means that 2 is smaller disk from 4 etc
// 0 shows absense of disk
// 2 dimensions table for 3 stack - towers
int tower[3][DISK_NUMBER];
//Saving the number of transfers
int transfer_number= 0;
/* dhlwseis synarthsewn*/
void Towers();
void Insert(int Tower, int disk);
int Delete(int Tower);
void moveTower(int DISK_NUMBER, int initial, int final , int
middle);
void moveDisk(int initial, int final);
void printTowers();
int main(void)
{
Towers();
printf("\n\n\t\tHANOI
TOWERS\n------------------------------------------
------\n\t\t at the beginning\n");
printTowers();
printf("\n\n\-------------------------------------------------\n");
moveTower(DISK_NUMBER, 0 , 2 , 1);
printf("\n\n The number of transfers is : %d \n",
tranfer_number);
return 0;
}
void Towers()
{ ??????
}
void Insert(int tower, int disk)
{ ??????
}
int Delete(int tower)
{ ??????
}
void moveTower(int DISK_NUMBER, int initial, int final , int
middle)
{
if( DISK_NUMBER == 0)// when we reach base
return;
int temporaryDisk = destination;
// transfer smaller disk from initial tower to the middle usin the
final tower
moveTower(DISK_NUMBER-1, initial, middle, temporaryDisk);
//transfer bigger disk
moveDisk(initial, final);
temporaryDisk = initial;
// transfer the rest of the disks from the middle tower to the final
using initial tower
moveTower(DISK_NUMBER-1, middle, final, temporaryDisk);
}
void moveDisk(int initial, int final)
{ ???????
}
void printTowers()
{ ???????
with hanoi and my problem is that I'm running out of time!
The exercise is this, and I have to complete the ???
#include<stdio.h>
#define DISK_NUMBER 4
// There are 3 towers represents 3 stacks
// The names of the disks are represented by numbers (1,2,3,...,n)
// That means that 2 is smaller disk from 4 etc
// 0 shows absense of disk
// 2 dimensions table for 3 stack - towers
int tower[3][DISK_NUMBER];
//Saving the number of transfers
int transfer_number= 0;
/* dhlwseis synarthsewn*/
void Towers();
void Insert(int Tower, int disk);
int Delete(int Tower);
void moveTower(int DISK_NUMBER, int initial, int final , int
middle);
void moveDisk(int initial, int final);
void printTowers();
int main(void)
{
Towers();
printf("\n\n\t\tHANOI
TOWERS\n------------------------------------------
------\n\t\t at the beginning\n");
printTowers();
printf("\n\n\-------------------------------------------------\n");
moveTower(DISK_NUMBER, 0 , 2 , 1);
printf("\n\n The number of transfers is : %d \n",
tranfer_number);
return 0;
}
void Towers()
{ ??????
}
void Insert(int tower, int disk)
{ ??????
}
int Delete(int tower)
{ ??????
}
void moveTower(int DISK_NUMBER, int initial, int final , int
middle)
{
if( DISK_NUMBER == 0)// when we reach base
return;
int temporaryDisk = destination;
// transfer smaller disk from initial tower to the middle usin the
final tower
moveTower(DISK_NUMBER-1, initial, middle, temporaryDisk);
//transfer bigger disk
moveDisk(initial, final);
temporaryDisk = initial;
// transfer the rest of the disks from the middle tower to the final
using initial tower
moveTower(DISK_NUMBER-1, middle, final, temporaryDisk);
}
void moveDisk(int initial, int final)
{ ???????
}
void printTowers()
{ ???????