ALBERI
Transcrição
ALBERI
! "" $ # $ % & Largo Baggins Fosco Baggins Dora Baggins Drogo Baggins Frodo Baggins Dudo Baggins Daisy Baggins ' $ # (( Frodo Baggins Drogo Baggins Ruby Bolgeri Largo Baggins Largo Baggins Bilbo Baggins Primula Brandibuck Tanta Soffiatromba Berylla Boffin Gorbadok Brandibuck Mirabella Tuc Marmadoc Brandibuck Adaldrida Bolgeri ) padre (Fosco) Largo Baggins radice Figlio (radice) Nodo interno Sottoalbero della radice Fosco Baggins Arco Nodi fratello Dora Baggins Drogo Baggins Dudo Baggins Foglie * $ ! % $ # # # " " + ,- ./ 0 0 "" ! ! / $ 0 ! n S T " struct nodo{ data d; struct nodo *sx; struct nodo *dx; }; typedef struct nodo nodo; typedef nodo *bintree; ' " /* Inizializzazione di un nodo*/ bintree new_node(){ return (bintree) malloc (sizeof(nodo)); } /* Creazione di un nuovo nodo */ bintree init_node(data nd, bintree T, bintree S){ bintree n = new_node(); n->d = nd; n->sx = S; n->dx = T; return n; } * " $ " " / / $ " 1) $ $ " 10 * 0 / / 34 ! 0 / * $ " ,2. S 0 / 1 0 n D ! 5 % 56 * int dim(bintree T) /* Post:dim(T) = dimensione di T = numero nodi in T */ % # 0 0 22 - # 1 34 0 (2 - 02 T->sx ,0 7 8.5 & 0 $ T->dx ,0 7 8.56 $ 1 * /* Dimensione di un albero binario*/ int dim(bintree T){ if (T== NULL) return 0; else return dim(T->sx)+dim(T->dx)+1; } "" Nodi a profondità 0 Frodo Baggins Drogo Baggins Ruby Bolgeri Largo Baggins Largo Baggins Bilbo Baggins Nodi a profondità 1 Primula Brandibuck Tanta Soffiatromba Gorbadok Brandibuck Mirabella Tuc Marmadoc Brandibuck Adaldrida Bolgeri Nodi a profondità 2 Nodi a profondità 3 Berylla Boffin ' ( "" int alt(bintree T) /* Post:alt(T) = altezza di di T = massima profondità in T */ % # 0 0 22 - # 1 64 0 (2 - 02 T->sx 8, & 0 $ ,0 7 8. T->dx ,0 7 8..56 $ 1 "" /* altezza di un albero binario*/ int altezza(bintree T){ if (T== NULL) return -1; else return max(altezza(T->sx),altezza(T->dx))+1; } ! TIPO ALGO(bintree T) /* Post: ALGO(T)=…….*/ TIPO RIS_SX, RIS_ DX, RIS; % # 0 0 22 - 10 0 22 - # 0 (2 ! 9! : 2 ! 9% : 2 ! 2* ,0 7 8. ,0 7 8. , ! 9! : ! 9% : . 02 T->sx T->dx ! & 0 $ $ 1 ; ; # , ! < ; , $ > ! . 1 . = # $ = $ < ; > "" # $ ?? 6 $ * " @