@edoardo2424
il tag code è un tastino che si trova sopra la finestra dell'input testo, è visualizzato quando entri in [Editor completo & Anteprima] e ha questo aspetto: [</>]
con il tag code il tuo codice viene visualizzato così come è, e non vengono introdotti errori dovuti a sequenze di caratteri contenuti nel codice che possono essere interpretati come codici di formattazione.
#include <stdlib.h> /* ora puoi usare NULL */
/* scrivi qui la definizione del tipo "nodo"_(typedef) di un
albero binario che coincide con una struttura con tre campi:
un campo "info" di tipo intero, un campo "sx" (il puntatore al
sottoalbero sinistro), un campo "dx" (un puntatore al sottoalbero
destro). */
typedef struct nodo {
int info;
struct nodo* sx;
struct nodo* dx;
}nodo;
/* scrivi qui la definizione del tipo "albero" (typedef) che
rappresenta un puntatore al tipo "nodo" */
typedef nodo*albero;
/* scrivi qui eventuali funzioni di appoggio */
int altezza (nodo* n){
if (n==NULL) return -1;
int sx=altezza(n->sx);
int dx=altezza(n->dx);
if(sx>dx){
return sx+1;
}
return dx+1;
}
int Numero_Foglie(nodo *n){
if (n==NULL) {return 0;}
if ((n->sx==NULL) && (n->dx==NULL)){
return 1;
}
return Numero_Foglie(n->sx)+Numero_Foglie(n->dx);
}
/* INIZIO FUNZIONE */
int albero_altezza_foglie(albero T){
if (T==NULL) return 0;
int a=altezza(T);
int f=Numero_Foglie(T);
/* Considera un albero binario T di interi.
La funzione albero_altezza_foglie deve ritornare un booleano:
1 (true) se l'altezza di T è pari al numero di foglie di T,
0 (false) altrimenti.
Si ricorda che in un albero binario vuoto l'altezza e' pari
a -1 mentre il numero di foglie e' pari a 0; quindi se T e'
vuoto allora la funzione albero_altezza_foglie deve ritornare 0. */
if (a==f){return 1;}
if (T!=NULL && T->dx!=NULL){
return 1;}
if (altezza!=Numero_Foglie){
return 0;
}
}