//Nel foglio interstazione(.h)
//[Nella classe Tree::BinTreeInt]
void visitPreorder(intFunc f);
void visitPostorder(intFunc f);
void visitInorder(intFunc f);
static void visitPreorder(BinTreeInt* nodo,intFunc f);
static void visitPostorder(BinTreeInt* nodo,intFunc f);
static void visitInorder(BinTreeInt* nodo,intFunc f);
//[Nella namespace Tree]
typedef int intFunc(int x); //Dovrebbe essere la dichiarazione di un funzione che passa un parametro intero e //restituisce intero
------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Nel foglio Cpp, implementazione delle funzioni, qui mi restituisce entrambi gli errori
void BinTreeInt::visitPreorder(intFunc f)
{
// Visita in preorder
if (this->exist)
{
this->setDato(f(this->dato));
this->sx->visitPreorder(f);
this->dx->visitPreorder(f);
}
}
void BinTreeInt::visitPostorder(intFunc f)
{
// Visita in preorder
if (this->exist)
{
this->sx->visitPostorder(f);
this->dx->visitPostorder(f);
this->setDato(f(this->dato));
}
}
void BinTreeInt::visitInorder(intFunc f)
{
// Visita in preorder
if (this->exist)
{
this->sx->visitInorder(f);
this->setDato(f(this->dato));
this->dx->visitInorder(f);
}
}
void BinTreeInt::visitPreorder(BinTreeInt* nodo, intFunc f)
{
// Visita in preorder
if (nodo->exist)
{
nodo->setDato(f(nodo->dato));
nodo->sx->visitPreorder(f);
nodo->dx->visitPreorder(f);
}
}
void BinTreeInt::visitPostorder(BinTreeInt* nodo, intFunc f)
{
// Visita in preorder
if (nodo->exist)
{
nodo->sx->visitPostorder(f);
nodo->dx->visitPostorder(f);
nodo->setDato(f(nodo->dato));
}
}
void BinTreeInt::visitInorder(BinTreeInt* nodo, intFunc f)
{
// Visita in preorder
if (nodo->exist)
{
nodo->sx->visitInorder(f);
nodo->setDato(f(nodo->dato));
nodo->dx->visitInorder(f);
}
}