di@!
08-06-2005, 12:11
Un esercizio di un compito di esame che ho fatto stamattina diceva:
Si scriva una funzione per calcolare la larghezza di un albero n-ario.
Io ho svolto l'esercizio in questo modo:
struct tree {
int elem;
struct tree *next;
struct tree *down;
};
typedef struct tree *TREE;
void width (TREE t, int counter[], int x) {
if(t==NULL) return;
else {
counter[x]++;
width(t->next,counter,x);
width(t->down,counter,x+1);
}
}
Viene usato un vettore dove ogni elemento corrisponde ad un livello dell'albero. Ricordavo che il professore l'aveva fatto a lezione, solo che guardandolo ora noto che il prof a lezione l'ha fatto come il mio soltanto che ha invertito le due righe finali, ovvero ha richiamato la funzione prima su down e poi su next...è la stessa cosa o devo considerare l'esercizio sbagliato?
Si scriva una funzione per calcolare la larghezza di un albero n-ario.
Io ho svolto l'esercizio in questo modo:
struct tree {
int elem;
struct tree *next;
struct tree *down;
};
typedef struct tree *TREE;
void width (TREE t, int counter[], int x) {
if(t==NULL) return;
else {
counter[x]++;
width(t->next,counter,x);
width(t->down,counter,x+1);
}
}
Viene usato un vettore dove ogni elemento corrisponde ad un livello dell'albero. Ricordavo che il professore l'aveva fatto a lezione, solo che guardandolo ora noto che il prof a lezione l'ha fatto come il mio soltanto che ha invertito le due righe finali, ovvero ha richiamato la funzione prima su down e poi su next...è la stessa cosa o devo considerare l'esercizio sbagliato?