Documente Academic
Documente Profesional
Documente Cultură
Estructuras de Datos
Las estructuras dinmicas son las en la ejecucin
varia el nmero de elementos y uso de memoria a lo
largo del programa)
Nodo Raz
A
B C
D E F G
K
H
Ms terminologa
Nodo Padre: Se le llama as al nodo predecesor de un elemento.
Nodo Hijo: Es el nodo sucesor de un elemento.
Hermanos: Nodos que tienen el mismo nodo padre.
A
Nodo Padre
B C
B C
D E F G
D, H, F y K son Nodos Hojas
K
H
Ms terminologa
B C
D E F G
Subrbol derecho de C
K
H
Subrbol izquierdo de C
Altura y Niveles
A
Altura Nivel 0
del rbol C
B
=4 Nivel 1
D E F G
Nivel 2
K
H
Nivel 3
21 30
33 33
13 21
5 25 36 41
18 32
40 43
15
Por qu no son ABB?
21 5
33 6
13 1
17 18 22 4
25 2
15 40
Implementacin de un ABB
class NodoArbol
{
public:
int info;
NodoArbol *izq, *der;
NodoArbol( );
NodoArbol(int dato);
};
NodoArbol(void) { izq = der = NULL; }
NodoArbol(int dato) { info = dato; izq = der = NULL; }
Continuacin
class ABB
{
private:
NodoArbol *raiz;
public:
ABB( ); // constructor
~ABB( ); // destructor
//otros mtodos
};
Proceso para buscar un nodo...
Buscar el 25
Paso El 25 es mayor o
menor que el 21?
Paso
21
1 2 21
El 25 es
13 33 33 mayor o menor
13 que el 33?
10 40 40
18 25 10 18 25
Paso
3 21
13 33
10 18 40
25
Encontrado
Implementacin de la bsqueda
...
p=raiz;
while (p != NULL)
{ if (p->info == valor)
return p;
else P contiene la direccin del nodo
que tiene el valor buscado
p=(p->info > valor? p->izq: p->der);
}
return NULL; Equivalente a:
No se encontr el valor por lo que
se regresa un NULL if ( p -> info > valor )
p = p -> izq;
else p = p-> der;
Proceso para agregar nodos...
Reglas:
El valor a insertar no existe en el rbol.
El nuevo nodo ser un Nodo Hoja del rbol.
Procedimiento
1. Buscar el Nodo Padre del nodo a agregar.
2. Agregar el nodo hoja.
Ejemplo
Agregar el valor 26
Paso El 26 es mayor o
menor que el 21?
Paso
21
1 2 21
El 26 es
13 33 33 mayor o menor
13 que el 33?
10 40 40
18 25 10 18 25
Paso Paso
3 21 4 21
33 13 33
13
18 40 10 18 40
10 25 25
Se encontr el Nodo
Padre Agregar el nodo
26
Comentarios importantes....
10
13
Paso 21
1
Nodo Padre
33 localizado
13
Paso
10 18 25 40 21
2
13 33
10 18 40
25
Desconectarlo y
liberar el nodo
Caso: Eliminar Nodo con un hijo
Eliminar el valor 25
Paso 21
1
Nodo Padre
33 localizado
13
Paso
10 18 25 40 21
2
29 13 33
25
27 30 40
10 18
29
Conectar el Nodo
Padre con el Nodo
27 30 Hijo y liberar el
nodo.
Caso: Eliminar nodo con dos hijos
21
33
El predecesor de: Es:
13
33 30
10 25 40 21 13
29 29 27
27 30
Sucesor
Uno a la DERECHA y todo a la IZQUIERDA
21
El sucesor de: Es:
33 21 25
13
33 40
10 18 25 40
29 30
29
27 30
Implementacin del....
10 40
40 18 25
10 18 25
Localizar el Predecesor
13 33
13 33
10 25 40
18
10 18 40
25 Desconectar y liberar el
nodo del Predecesor
Caso: Eliminar Nodo con dos hijos
Eliminar el valor 21
utilizando el Sucesor
Paso Localizar el valor a Paso 21
21 borrar 2
1
13 33
13 33
10 40
40 18 25
10 18 25
Localizar el Sucesor
13 33
13 33
10 18 25 40
10 18 40 Desconectar y liberar el
25
nodo del Sucesor