Sie sind auf Seite 1von 22

UNIDAD 1

MG.MAT.HALYN ALVAREZ VASQUEZ

Las estructuras dinmicas son las en


la ejecucin varia el nmero de
elementos y uso de memoria a lo largo
del programa)
Entre estas tenemos:
Lineales (listas enlazadas, pilas y
colas)
No lineales (arboles binarios y grafos
o redes)

Qu es un rbol?
Es una estructura de datos jerrquica.
La relacin entre los elementos es de
uno a muchos.

Terminologa
Nodo: Cada elemento en un rbol.
Nodo Raz: Primer elemento agregado al rbol.
Nodo Raz

B
D

E
H

G
K

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
C

B
D

E
H

Nodo Padre

F y G son Nodos Hijos de C


F y G son hermanos

G
K

Ms terminologa

Nodo Hoja: Aquel nodo que no tiene hijos.

A
C

B
D

E
H

G
K

D, H, F y K son Nodos Hojas

Ms terminologa
Subrbol: Todos los nodos descendientes por
la izquierda o derecha de un nodo.
A
C

B
D

E
H

G
K

Subrbol izquierdo de C

Subrbol derecho de C

Altura y Niveles
A

Altura
del rbol
=4

Nivel 0
C

B
D

La Altura es la cantidad de niveles.

Nivel 1
G

Nivel 2
K

Nivel 3

rbol Binario de Bsqueda


(ABB)

Este tipo de rbol permite almacenar


informacin ordenada.
Reglas a cumplir:
Cada nodo del rbol puede tener 0, 1
2 hijos.
Los descendientes izquierdos deben
tener un valor menor al padre.
Los descendientes derechos deben tener
un valor mayor al padre.

Ejemplos de ABB
21

30
33

13
5

18

25

36

32
40

15

33

21

41
43

Por qu no son ABB?


21

5
33

13
17

18
15

25

1
22

2
40

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
1

El 26 es mayor o
menor que el 21?

21

33

13

10

18

Paso
3

18

21

18

10

Paso
4

21
33

25

25

Se encontr el Nodo
Padre

10

18

40

21
33

13
40

El 26 es
mayor o menor
que el 33?

33

13
40

25

13

10

Paso
2

40

25
26

Agregar el nodo

Comentarios importantes....

El orden de insercin de los datos, determina la forma


del ABB.
Qu pasar si se insertan los datos en forma ordenada?
La forma del ABB determina la eficiencia del proceso de
bsqueda.
Entre menos altura tenga el ABB, ms balanceado
estar, y ms eficiente ser.
10
13
Este rbol est
desbalanceado
porque los valores se
agregaron en el siguiente
orden:
10, 13, 18, 21, 25, 33, 40

18
21
25

Proceso para eliminar un


nodo

Si el nodo a eliminar es un:


Nodo hoja
Buscar el Nodo Padre del nodo a borrar.
Desconectarlo.
Liberar el nodo.

Nodo con un hijo


Buscar el Nodo Padre del nodo a borrar.
Conectar el hijo con el padre del nodo a borrar.
Liberar el nodo.

Nodo con dos hijos


Localizar el nodo predecesor o sucesor del nodo a borrar.
Copiar la informacin.
Eliminar el predecesor o sucesor segn sea el caso.

Caso: Eliminar Nodo hoja


Eliminar el valor 25
Paso
1

21
33

13

10

18

25

Nodo Padre
localizado

40

Paso
2

21
33

13

10

18

25

40
Desconectarlo y
liberar el nodo

Caso: Eliminar Nodo con un hijo


Eliminar el valor 25
Paso
1

21
33

13

10

Nodo Padre
localizado

18

40

25

Paso
2

29

21
33

13
25

27

30

10

40

18
29
27

30

Conectar el Nodo
Padre con el Nodo
Hijo y liberar el
nodo.

Caso:

Eliminar nodo con dos hijos

1. Localizar el nodo predecesor o sucesor


del nodo a borrar.

El PREDECESOR es el Mayor de los


Menores.
El SUCESOR es el Menor de los Mayores.
Para la implementacin es igual de
eficiente programar la bsqueda del
predecesor que del sucesor.

2. El valor del Predecedor (o sucesor) se


copia al nodo a borrar.
3. Eliminar el nodo del predecesor (o
sucesor segn sea el caso).

Predecesor
Uno a la IZQUIERDA y todo a la DERECHA
21
33

13

40

25

10

29
27

30

El predecesor de:

Es:

33

30

21

13

29

27

Sucesor
Uno a la DERECHA y todo a la IZQUIERDA
21
33

13

10

18

40

25
29
27

30

El sucesor de:

Es:

21

25

33

40

29

30

Caso:
Paso
1

Localizar el valor a
borrar

21

18

21
33

13

40

25

Eliminar el valor 21
utilizando el predecesor

Paso
2

33

13

10

Eliminar Nodo con dos


hijos

10

40

25

18

Localizar el Predecesor

Paso
3

Copiar el valor del


Predecesor al nodo que
contena el valor a borrar

18

Paso
4

18
33

13
33

13

10
10

18

25

40

18

25

40

Desconectar y liberar el
nodo del Predecesor

Caso:
Paso
1

Localizar el valor a
borrar

21

18

21
33

13

40

25

Eliminar el valor 21
utilizando el Sucesor

Paso
2

33

13

10

Eliminar Nodo con dos


hijos

10

18

40

25

Localizar el Sucesor

Paso
3

Copiar el valor del


Sucesor al nodo que
contena el valor a borrar

25

Paso
4

18
33

13
33

13

10
10

18

25

40

18

25

40
Desconectar y liberar el
nodo del Sucesor

Das könnte Ihnen auch gefallen