Non so se è quello che intendevi tu, ma ho risolto modificando semplicemente la funzione treeprintn in questo modoOriginariamente inviato da ramy89
Puoi fare una visita dfs ricorsiva o iterativa se hai a disposizione una pila.
Durante la visita puoi mettere in un array tutte le occorrenze incontrate nei vari nodi (il valore count).
Alla fine della procedura hai questo array con tutte le occorrenze, lo ordini in senso decrescente.
Ah, il potere di 5 minuti di pausa!!codice:void treeprintn(struct tnode *p, int n) { if (p != NULL) { if ((p->count) == n) printf("%3d %s\n", p->count, p->word); treeprintn(p->left, n); treeprintn(p->right, n); } }
Grazie mille comunque per l'aiuto. Come avresti implementato tu la funzione?


Rispondi quotando