Originariamente inviato da }gu|do[z]{®©
anx721, sei il mio faro in questi giorni.. (ah.. poi ho preso 30 all'esame )
Bravo

Originariamente inviato da }gu|do[z]{®©
L'unica cosa che mi stranisce un attimo è la lista tratta dal dizionario.
Nel senso: se ho l'albero dizionario, è giusto estrarne una lista ordinata?
Il vantaggio dell'albero è quindi solo nell'aggiunta di parole al dizionario?
Sono un attimo perplesso ma non saprei come fare altrimenti, usando direttamente l'albero.. cioè.. dovrei implementare tuto il codice all'interno della funzione che visita l'albero... e mi pare poco pratico
danke [/B]
In pratica un ordinamento sulle parole del dizionario ti serve per poter costruire il vettore che rappresenta la query o il vettore di un file, in quanto se hai le parole ordinate, puoi ricercare la posizione occupata da una parola nel dizionario e mettere un 1 nel vattore; la ricerca della parola puo essere fatta in tempo log(n) se n è il numero di tutte le parole. Questo vale per un albero binario o per un vettore ad accesso diretto, cioè, un array, ma non una lista, perchè una lista la puoi scorrere solo sequenzialmente. Per la lista utilizza quindi un array di puntatori a char o alla struct che eventualmente ti rappresenta la parola, in modo da poter utilizzare la ricerca binaria. Volendo potresti crearti un albero in cui ogni nodo porta già il numero d'ordine della parola associata al nodo, in questo modo ti basterebbe scendere lungo l'albero, andando a destra o a sinistra, e quando trovi il nodo con la parola ricercata puoi leggere l'indice della parola nell'ordinamento.