Ho questo problema, ho implementato la visita pre-order di un albero binario, però com'è intuibile in questo modo viene modificata la radice dell'albero cambiando curr, dato che curr punterà proprio alla zona di memoria allocata da root. Come faccio per visitare l'albero e non modificare root al ritorno ?
codice:
void print_abr_pre(tree *root,funzioni *funz){
stack *st=NULL;
tree *curr=root;
while((st) || (curr)){
if(curr){
funz->output(curr->inf);
st=push(st,curr);
curr=curr->sx;
}
else{
curr=top(st);
st=pop(st);
curr=curr->dx;
}
}
}