Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Algoritmi e Strutture Dati, Dispense di Elementi di Informatica

Alberi Binari di Ricerca Progettazione e Inizializzazion Esempi Funzioni con Alberi Binari di Ricerca Alberi binari con etichette complesse

Tipologia: Dispense

2019/2020

Caricato il 14/06/2020

Prosecco2020
Prosecco2020 🇮🇹

4.4

(36)

31 documenti

1 / 65

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Antonio Luca Alfeo - 2020
Algoritmi e
Strutture Dati
Lezione 3
Antonio Luca alfeo
http://mlpi.ing.unipi.it/alfeo
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41

Anteprima parziale del testo

Scarica Algoritmi e Strutture Dati e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Algoritmi e

Strutture Dati

Lezione 3

Antonio Luca alfeo

[email protected]

http://mlpi.ing.unipi.it/alfeo

Sommario  Alberi Binari di Ricerca  Progettazione e Inizializzazione  Esempi Funzioni con Alberi Binari di Ricerca  Alberi binari con etichette complesse  Esercizi

Alberi Binari 7 7 10 5 9 11 6 8 70

binTree struct Node { int value; Node * left; Node * right; Node(int val): value(val) , left(NULL) , right(NULL) {} };

N.B. = inizializzare i puntatori a NULL

binTree struct Node { int value; Node * left; Node * right; Node(int val): value(val) , left(NULL) , right(NULL) {} }; class BinTree { Node * root_; public: BinTree() { root_ = NULL; } Node * getRoot() { return root_; } }

N.B. = inizializzare i puntatori a NULL

Insert void insert( int val ) { // inizializzo nuovo elemento // inizializzo variabili appoggio }

Insert void insert( int val ) { // inizializzo nuovo elemento // inizializzo variabili appoggio // finchè non arrivo ad una foglia { // aggiorno variabili // se <= // vado a sinistra // altrimenti // vado a destra } }

Esempio: trova Min e Max

min & MAX

Min & Max

Node * min()

Node * temp = root_;

while( temp->left != NULL )

temp = temp->left;

return temp;

Node * max()

Node * temp = root_;

while( temp->right != NULL )

temp = temp->right;

return temp;

Esempio: visita l’albero

In-Order void inOrder( Node * tree ) { // se l’albero non e’ terminato { } }

In-Order void inOrder( Node * tree ) { // se l’albero non e’ terminato { // visito verso left // stampo questo valore // visito verso right } }