Alberi binari di ricerca

di Anonimizzato31884 il
7 risposte
Salve a tutti. Non riesco a capire come impostare questo determinato problema. Grazie mille per chi mi aiuterà. DI seguito la traccia.
"Indicare e commentare brevemente il tempo di esecuzione nel caso pessimo della cancellazione in un albero binario in cui in precedenza è stata inserita la seguente sequenza (nell'ordine indicato) di elementi:
1,2,3,4,5,...,n-3,n-2,n-1,n
Mostrare inoltre l'output di una visita post-ordine in tale albero"

7 Risposte

  • E' un problema di codice C/C++? Non mi pare. Non devi scrivere codice ma rispondere 'teoricamente'.
  • Che poi basta applicare la definizione. Più semplice di questo albero...
  • Il tempo di esecuzione nel caso pessimo della cancellazione è dovuto da O(n) essendo dovuto da alberi molto sbilanciati e profondi. Una visita in post-ordine avviene in questo modo:
    I. entro nel generico nodo n
    II. e III: lancio la procedura sul figlio sinistro e destro. raccolgo gli output dalle procedure lanciate sui figli
    IV. eseguo la computazione su n, mi avvalgo dei valori computati sui figli
    V. esco dal nodo n. restituisco un output alla procedura lanciata sul genitore
    ordine di visita: n, n-1, n-2, n-3, ..., 5, 4, 3, 2, 1
  • Caso peggiore non caso pessimo
  • Quindi la soluzione proposta non è esatta?
  • Dovrebbe essere corretto il post order, perché visita prima i nodi figli e poi il nodo padre, ma nel caso della lista ha solo il figlio destro, quindi è effettivamente una visita a partire dell'ultimo. Ovviamente se si parla di alberi di ricerca senza alcun tipo di bilanciamento.
  • Grazie
Devi accedere o registrarti per scrivere nel forum
7 risposte