Alberi binari e ricorsione
un albero binario: radice figlio sinistro figlio destro ogni nodo ha al più 2 figli ogni figlio è destro o sinistro foglie...
0 00 01 111 101 cammini = sequenze di nodi = sequenze di 0 e 1 profondità di un nodo altezza dell’albero=prof. max delle f...
albero binario completo ogni livello è completo, se h= altezza l’albero contiene 2 h+1  -1  nodi
<ul><li>definizione ricorsiva degli alberi: </li></ul><ul><li>albero binario  è: </li></ul><ul><li>un albero vuoto </li></...
i s o s f n i <ul><li>percorso  infisso : </li></ul><ul><li>a sinistra </li></ul><ul><li>nodo </li></ul><ul><li>a destra <...
r p s s e f i <ul><li>percorso  prefisso : </li></ul><ul><li>nodo </li></ul><ul><li>a sinistra </li></ul><ul><li>a destra ...
t o s i s p o <ul><li>percorso  postfisso : </li></ul><ul><li>a sinistra </li></ul><ul><li>a destra </li></ul><ul><li>nodo...
altezza di un albero = profondità massima dei suoi nodi = distanza massima tra 2 nodi dell’albero  altezza 0 altezza 1 alb...
un  cammino  di un albero = sequenza di 0 e 1 0=sinistra 1= destra array int C[]  e il valore -1 indica la fine della sequ...
inserimento di un nuovo nodo in un albero: il nuovo va inserito come figlio di un nodo già esistente diventa quindi una fo...
dove metteremmo n? n ha meno nodi
è simile ad aggiungere un nuovo nodo in fondo ad una lista
binary  search  trees (BST): i h a g f r t s ogni nodo è maggiore dei nodo nel sottoalbero sinistro e minore di quelli del...
i h a g f r t s cerchiamo h: h<i andiamo a sinistra h>f destra h>g destra trovato !!! se h non ci fosse 0
n i a g f r t s se h non ci fosse dove andrebbe inserito? h
n i a g f r t s h percorso infisso a f g i n r s t sono in ordine !!
inseriamo  e s e m p i o  nell’albero vuoto root=0 root e e s root e s e root e e s m root
p m e s e o i p m e s e i p m e s e p o i
a c b f e x d come un’espressione prefissa: a(b(f(_,_),e(x(_,_),_)),c(_,d(_,_))) useremo un percorso prefisso
Upcoming SlideShare
Loading in …5
×

Alberi Binari

2,205 views

Published on

Slide dedicate agli Alberi Binari di ricerca e alla ricorsione realizzate da Fabio R. Gambera

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,205
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Alberi Binari

  1. 1. Alberi binari e ricorsione
  2. 2. un albero binario: radice figlio sinistro figlio destro ogni nodo ha al più 2 figli ogni figlio è destro o sinistro foglie nodo interno
  3. 3. 0 00 01 111 101 cammini = sequenze di nodi = sequenze di 0 e 1 profondità di un nodo altezza dell’albero=prof. max delle foglie X  0 X  1 X  2
  4. 4. albero binario completo ogni livello è completo, se h= altezza l’albero contiene 2 h+1 -1 nodi
  5. 5. <ul><li>definizione ricorsiva degli alberi: </li></ul><ul><li>albero binario è: </li></ul><ul><li>un albero vuoto </li></ul><ul><li>nodo (albero sinistro, albero destro) </li></ul>nodo sinistro destro
  6. 6. i s o s f n i <ul><li>percorso infisso : </li></ul><ul><li>a sinistra </li></ul><ul><li>nodo </li></ul><ul><li>a destra </li></ul>depth-first traversal
  7. 7. r p s s e f i <ul><li>percorso prefisso : </li></ul><ul><li>nodo </li></ul><ul><li>a sinistra </li></ul><ul><li>a destra </li></ul>o
  8. 8. t o s i s p o <ul><li>percorso postfisso : </li></ul><ul><li>a sinistra </li></ul><ul><li>a destra </li></ul><ul><li>nodo </li></ul>s f
  9. 9. altezza di un albero = profondità massima dei suoi nodi = distanza massima tra 2 nodi dell’albero altezza 0 altezza 1 albero vuoto? per convenzione -1
  10. 10. un cammino di un albero = sequenza di 0 e 1 0=sinistra 1= destra array int C[] e il valore -1 indica la fine della sequenza: r x cammino per x: C=[010-1] cammino di r = [-1]
  11. 11. inserimento di un nuovo nodo in un albero: il nuovo va inserito come figlio di un nodo già esistente diventa quindi una foglia o l’unico nodo se l’albero era vuoto inseriamo sempre nel sotto albero che contiene meno nodi L R cioè conto i nodi di L e di R e inserisco il nodo nel + piccolo dei 2
  12. 12. dove metteremmo n? n ha meno nodi
  13. 13. è simile ad aggiungere un nuovo nodo in fondo ad una lista
  14. 14. binary search trees (BST): i h a g f r t s ogni nodo è maggiore dei nodo nel sottoalbero sinistro e minore di quelli del destro
  15. 15. i h a g f r t s cerchiamo h: h<i andiamo a sinistra h>f destra h>g destra trovato !!! se h non ci fosse 0
  16. 16. n i a g f r t s se h non ci fosse dove andrebbe inserito? h
  17. 17. n i a g f r t s h percorso infisso a f g i n r s t sono in ordine !!
  18. 18. inseriamo e s e m p i o nell’albero vuoto root=0 root e e s root e s e root e e s m root
  19. 19. p m e s e o i p m e s e i p m e s e p o i
  20. 20. a c b f e x d come un’espressione prefissa: a(b(f(_,_),e(x(_,_),_)),c(_,d(_,_))) useremo un percorso prefisso

×