Un Albero di Ricerca Binaria (CEST) è un albero in cui tutti i nodi seguire i sotto indicati proprietà −
-
Il valore della chiave di sinistra sotto-albero è inferiore al valore del principale (root) del nodo di chiave.
-
Il valore della chiave del sottoalbero destro è maggiore o uguale al valore della chiave del nodo genitore (radice).,
Quindi, BST divide tutti i suoi sotto-alberi in due segmenti; il sotto-albero sinistro e il sotto-albero destro e può essere definito come −
left_subtree (keys) < node (key) ≤ right_subtree (keys)
Rappresentazione
BST è un insieme di nodi disposti in modo da mantenere le proprietà BST. Ogni nodo ha una chiave e un valore associato. Durante la ricerca, la chiave desiderata viene confrontata con le chiavi in BST e, se trovata, viene recuperato il valore associato.,
Di seguito è riportata una rappresentazione pittorica di BST −
Osserviamo che la chiave del nodo radice (27) ha tutte le chiavi di valore inferiore sul sotto-albero sinistro e le chiavi di valore superiore sul sotto-albero destro.
Operazioni di base
Di seguito sono riportate le operazioni di base di un albero −
-
Cerca − Cerca un elemento in un albero.
-
Insert-Inserisce un elemento in un albero.
-
Pre-order Traversal − Attraversa un albero in modo pre-order.
-
In-order Traversal − Attraversa un albero in modo in ordine.,
-
Post-order Traversal − Attraversa un albero in modo post-order.
Nodo
Definire un nodo con alcuni dati, riferimenti ai suoi nodi figlio sinistro e destro.
struct node { int data; struct node *leftChild; struct node *rightChild;};
Operazione di ricerca
Ogni volta che un elemento deve essere cercato, avviare la ricerca dal nodo radice. Quindi se i dati sono inferiori al valore della chiave, cerca l’elemento nella sottostruttura sinistra. Altrimenti, cerca l’elemento nella sottoalbero destra. Seguire lo stesso algoritmo per ogni nodo.,
Algoritmo
Operazione di inserimento
Ogni volta che un elemento deve essere inserito, individuare prima la sua posizione corretta. Inizia la ricerca dal nodo radice, quindi se i dati sono inferiori al valore della chiave, cerca la posizione vuota nella sottostruttura sinistra e inserisci i dati. In caso contrario, cercare la posizione vuota nella sottostruttura destra e inserire i dati.