Track
/
Delphi Pascal
Delphi Pascal
/
Esercizi
/
Albero binario di ricerca
Albero binario di ricerca

Albero binario di ricerca

Medio

Istruzioni

Inserisci e cerca numeri in un albero binario.

Quando dobbiamo rappresentare dati ordinati, un array non è una buona struttura dati.

Prendiamo l'array [1, 3, 4, 5] e aggiungiamoci 2, così diventa [1, 3, 4, 5, 2]: adesso dobbiamo ordinare di nuovo l'intero array! Possiamo migliorare la situazione rendendoci conto che ci basta fare spazio per il nuovo elemento [1, nil, 3, 4, 5] e poi inserirlo nello spazio che abbiamo creato. Ma questo ci obbliga comunque a spostare molti elementi di una posizione.

Gli alberi binari di ricerca, invece, riescono a lavorare su dati ordinati in modo molto più efficiente.

Un albero binario di ricerca è formato da una serie di nodi collegati tra loro. Ogni nodo contiene un dato (ad esempio il numero 3), una variabile chiamata left e una variabile chiamata right. Le variabili left e right puntano a nil o ad altri nodi. Dato che questi altri nodi hanno a loro volta altri nodi sotto di sé, diciamo che le variabili left e right puntano a dei sottoalberi. Tutti i dati nel sottoalbero sinistro sono minori o uguali al dato del nodo corrente, e tutti i dati nel sottoalbero destro sono maggiori del dato del nodo corrente.

Ad esempio, se avessimo un nodo contenente il dato 4 e aggiungessimo il dato 2, il nostro albero apparirebbe così:

  4
 /
2

Se poi aggiungessimo 6, apparirebbe così:

  4
 / \
2   6

Se poi aggiungessimo 3, apparirebbe così

   4
 /   \
2     6
 \
  3

E se poi aggiungessimo 1, 5 e 7, apparirebbe così

      4
    /   \
   /     \
  2       6
 / \     / \
1   3   5   7

Fonte

Josh Cheek
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Delphi Pascal Exercism

Vuoi iniziare Albero binario di ricerca?

Iscriviti a Exercism per imparare e padroneggiare Delphi Pascal con 76 esercizi e il mentoring di persone reali, tutto gratis.