Stampare albero binario in maniera ricorsiva....

di Anonimizzato8544 il
7 risposte
Non riesco a capire perché questo metodo di stampa non funziona guardate
struct nodo {
char info;
struct nodo*dx,sx;
};

void stampa_bin_ordine(nodo*rad){
if(rad==NULL) return;
else
{
std::cout<<rad->info<<"\n";
stampa_bin_ordine(rad->sx);
stampa_bin_ordine(rad->dx);
}
}
dove sbaglio?

7 Risposte

  • 
    struct nodo*dx,sx;
    
  • Grazie adesso funziona e metti caso volessi sapere quant'era la somma del contenuto dei nodi secondo te la potrei realizzare così?:
    int conta_nodi(nodo*radice){
    if(radice==NULL)return;
    else return(1+(conta_nodi(nodo->dx)+conta_nodi(nodo->sx);
    
    }
  • Così non conti niente però. dov'è l'accumulatore che conta? Devi provare se quel 1 fa il lavoro come si deve. Non posso fare il debugger per te.
  • int conta_nodi(nodo*radice){
    int a=0;
    if(radice==NULL)return;
    else a=(1+(conta_nodi(nodo->dx)+(conta_nodi(nodo->sx);
    return(a);
    }
    
    dici così?
  • USA IL DEBUGGER e scoprilo.
  • Non posso per 1 semplice motivo gli alberi li ho studiati senza studiare l'inserimento e molte altre cose quindi è impossibile creare 1 programma sugli alberi per me al max posso creare qualche sottoprogramma
Devi accedere o registrarti per scrivere nel forum
7 risposte