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 $
*
"
@