Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ra
Captulo 5
rboles
Pg. 76
5.1.
rboles
Introduccin
Bor
ra
5.2.
rboles
1
2
3
4
5
6
struct Nodo {
int Clave ;
Nodo * rama1 ;
Nodo * rama2 ;
nodo * rama3 ;
}
O generalizando ms:
1
2
3
4
5
# define ORDEN 5
struct Nodo {
int Clave ;
Nodo * rama [ ORDEN ]; // Arreglo de punteros a Nodo
}
Oliver A. Vilca H.
5.3.
Pg. 77
rboles binarios
Bor
ra
Los nodos en s que conforman un rbol binario se denominan nodos internos, y todas las referencias que son null se denominan nodos
externos. Algunos de los usos comunes de los rboles binarios son los rboles binarios de bsqueda, los montculos binarios y la Codificacin de
Huffman.
Programa 5.3: Nodo de un rbol binario en C++
1
2
3
4
5
struct Nodo {
int Clave ;
Nodo * I z q u i e r d a;
Nodo * Derecha ;
};
5.4.
Pg. 78
rboles
Bor
ra
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct Nodo {
char Clave ;
Nodo * I z q u i e r d a;
Nodo * Derecha ;
};
class ABB {
Nodo * Raiz ; // R e f e r e n c i a a la raiz del ABB
public :
ABB (); // C o n s t r u c t o r
void Insertar ( int );
// Aqui otras f u n c i o n e s miembro .
};
ABB :: ABB ()
{
Raiz = NULL ;
}
5.4.1.
Bsqueda
Oliver A. Vilca H.
Pg. 79
Bor
ra
Si X es menor que el elemento almacenado en la raiz se sigue buscando recursivamente en el subrbol izquierdo, y si X es mayor que
el elemento almacenado en la raz se sigue buscando recursivamente
en el subrbol derecho.
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
5.4.2.
Insercin
Pg. 80
rboles
Programa 5.7: Insercin en un rbol ABB - C++
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Bor
ra
while ( true )
{
if ( x < n - > Clave ){
if (n - > I z q u i e r d a == NULL ){
n - > I z q u i e r d a = C r e a r N o d o( x );
return ;
}
n = n - > I z q u i e r d a;
}
else {
if (n - > Derecha == NULL ){
n - > Derecha = C r e a r N o d o( x );
return ;
}
n = n - > Derecha ;
}
}
5.4.3.
Borrado
5.4.4.
Recorridos en un ABB
5.5.
5.5.0.1.
Propiedades
Propiedad 1
(5.1)
Oliver A. Vilca H.
5.5.0.2.
Pg. 81
Propiedad 2
Bor
ra
Se tiene que:
En = In + 2n
5.5.0.3.
(5.2)
Propiedad 3
bn
1
1
2
5
?
Cuadro 5.1: Arboles binarios que se pueden construir con n nodos internos.
b0 = 1 P
n
bn+1 = k=0 bk .bnk
(5.3)
b4 = b0 b3 + b1 b2 + b2 b1 + b3 b0 = 5 + 2 + 2 + 5 = 14