You are on page 1of 47

RBOLES BINARIOS DE

BSQUEDA

TAMBIEN LLAMADOS RBOLES


ABB

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

RBOL BINARIO DEBSQUEDA (ABB)

Es un tipo especial de rbol , til para


almacenar informacin en forma
Ordenada.
Resuelve el problema de conjuntar la bsqueda
binaria, con los procesos de altas y bajas en la
estructura, en formaeficiente.

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

CARACTERSTICAS DEUN ABB

BINARIO : Cada nodo slo puede tener 0, 1 2 hijos.


DE BUSQUEDA :
Regla a cumplir con la informacin para todo nodo
del rbol:

UPB 1

IS

Los descendientes izquierdos tienen un valor menor


al padre.

Los descendientes derechos tienen un valor mayor


al padre.

1 EDA 1 E.E.C.C. 1 29.02.2016

EJEMPLOS DE ABB
21

30
33

13

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

OPERACIONES
1. Buscar un valor

2. Insertar
3. Eliminar

Predecesor
Sucesor
Recorrido
Preorden
InOrden

PostOrden
UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARA BUSCAR UN NODO


Por ejemplo: buscar el 25

Paso
1

El 25 es mayor o
menor que el 21?

21
33

13

10

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

18

25

40

PROCESO PARA BUSCAR UN NODO


Por ejemplo: buscar el 25

Paso
2

33

13

10

UPB 1

IS

El 25 es mayor o
menor que el 33?

21

1 EDA 1 E.E.C.C. 1 29.02.2016

18

25

40

PROCESO PARA BUSCAR UN NODO

Por ejemplo: buscar el 25

Paso
3

21
33

13

10

18

25

40

Encontrado

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARAAGREGAR UN NODO

Regla de insercin:
Todo nuevo nodo se insertar como nodo HOJA en el ABB,
en el lugar que le correspondera segn el proceso de
bsqueda.

Reglas:

Que el valor a insertar no exista en el rbol.

Que el nuevo nodo se convierta en un Nodo Hoja del rbol.

Procedimiento
1. Buscar el Nodo Padre del nodo a agregar.
2. Agregar el nodo.

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARA AGREGARNODOS


Por ejemplo: agregar el 26

Paso
1

El 26 es mayor o
menor que el 21?

21
33

13

10

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

18

25

40

PROCESO PARA AGREGARNODOS


Por ejemplo: agregar el 26

Paso
2

El 26 es mayor o
menor que el 33?

21
33

13

10

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

18

25

40

PROCESO PARA AGREGARNODOS


Por ejemplo: agregar el 26

Paso
3

21
33

13

10

18

25

40

Se encontr al
nodo padre
UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARA AGREGARNODOS


Por ejemplo: agregar el 26

Paso
4

21
33

13

10

18

40

25
26

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

Agregar el
nuevo nodo

COMENTARIOS IMPORTANTES

UPB 1

IS

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.

1 EDA 1 E.E.C.C. 1 29.02.2016

COMENTARIOS IMPORTANTES
Entre menos altura tenga el ABB, ms
balanceado estar y por lo tanto ms
eficiente ser.
10
Este rbol est
desbalanceado
porque los valores se
agregaron en el siguiente
orden:
10, 13, 18, 21, 25

13
18
21
25

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARAELIMINAR UN NODO


Si el nodo a eliminar es un:
Nodo hoja
Buscar el Nodo Padre del nodo a borrar.
Desconectarlo.

Nodo con un hijo


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

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARAELIMINAR UN NODO


Si el nodo a eliminar es un:
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.

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARA ELIMINAR UN NODO HOJA


Por ejemplo: eliminar el 25

Paso
1

Nodo Padre
localizado

21
33

13

10

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

18

25

40

PROCESO PARA ELIMINAR UN NODO HOJA


Por ejemplo: eliminar el 25

Paso
2

21
33

13

10

40

18
25

Desconectarlo

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PROCESO PARA ELIMINAR UN NODO CON UN HIJO

Por ejemplo: eliminar el 25

Paso
1

21
33

13

10

Nodo Padre
localizado

18

40

25

29
27

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

30

PROCESO PARA ELIMINAR UN NODO CON UN HIJO


Por ejemplo: eliminar el 25
Paso
2

21
33

13
25
10

40

18

29
27

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

30

Conectar el Nodo
Padre con el Nodo
Hijo.

ELIMINARNODO 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. E l valor del predecedor (o sucesor) se copia al
nodo a borrar.

Eliminar el nodo del predecesor o sucesor segn sea el caso.

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

PREDECESOR
el Mayor de los Menores
Uno a la IZQUIERDA y todo a la DERECHA

21
33

13

40

25

10

29
27

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

30

El predecesor de:

Es:

33

30

21

13

29

27

SUCESOR
el Menor de los Mayores
Uno a la DERECHA y todo a la IZQUIERDA

21
33

13

10

18

40

25
29
27

UPB 1

IS

30

1 EDA 1 E.E.C.C. 1 29.02.2016

El sucesor de:

Es:

21

25

33

40

29

30

ELIMINAR NODO CON DOS HIJOS


Eliminar el valor 21
utilizando el
predecesor
Localizar el valor a
borrar

Paso
1

21

18

40

25

21
33

13

33

13

10

Paso
2

10

40

25

18

Localizar el
Predecesor
Copiar el valor del
Predecesor al nodo que
contena el valor a borrar

Paso
3

Paso
4

18

18
33

13
33

13

10
10

18

25

18

25

40

40
Desconectar el nodo del
Predecesor

ELIMINAR NODO CON DOS HIJOS


Eliminar el valor 21
utilizando el Sucesor
Localizar el valor a
borrar

Paso
1

21

18

40

25

21
33

13

33

13

10

Paso
2

10

18

40

25

Localizar el Sucesor
Copiar el valor del
Sucesor al nodo que
contena el valor a borrar

Paso
3

25

Paso
4

10
10

18

25

33

13

33

13

25

40

18

25

40
Desconectar el nodo
del Sucesor

CUL DE LOS DOS ELEGIR?


PREDECESOR? SUCESOR?
Cualquiera de las dos opciones son vlidas.

Al momento de implementar la operacin,se


selecciona slo una de las dos.

IMPORTANTE:
Se puede asegurar que el Predecesor o el Sucesor
sern un Nodo Hoja o un Nodo con un Hijo,lo cual
facilitar la eliminacin fsica de un nodo.

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

OTRO EJEMPLO
30
25

40

10
5
3

20
8

18

50

29

45

24

21

15
12

28

17

23

Dar de baja al 25 usando


PREDECESOR

OTRO EJEMPLO
30

24

40

10
5
3

20
8

18

17

50
29

21
23

15
12

28
45

OTRO EJEMPLO
30
25

40

10

5
3

20
8

50

29

18

45

24

21

15
12

28

17

23

Dar de baja al 30 usando


SUCESOR

OTRO EJEMPLO
40
25

50

10

28
45

5
3

20
8

18

24

21

15
12

29

17

23

RECORRIDOS EN
RBOLES BINARIOS
Recorrido Preorden, Inorden y
Postorden Recorridos Conversos

Recorrido Nivel por nivel

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

RECORRIDOS EN RBOLES
BINARIOS
Recorrer el rbol es pasar por o
visitar todos los nodos del mismo.
Recorridos tpicos:
Preorden
Inorden
Postorden

Otro tipo de recorridos


Conversos
Nivel por nivel

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

Los recorridos se
aplican sobre un
rbol Binario.
NO TIENE que ser
ABB forzosamente.

RECORRIDO PREORDEN

Proceso:

UPB 1

IS

Visita el nodo raz del rbol.

Recorre en preorden el subrbol izquierdo del nodo


raz.

Recorre en preorden el subrbol derecho del nodo


raz.

1 EDA 1 E.E.C.C. 1 29.02.2016

EJEMPLO --RECORRIDO
PREORDEN
21
33

13

10

18

25

40

Recorrido en Preorden: 21, 13, 10, 18, 33, 25, 40

RECORRIDO INORDEN

Proceso:

UPB 1

IS

Recorre en inorden el subrbol izquierdo.

Visita la raz del rbol.

Recorre en inorden el subrbol derecho.

1 EDA 1 E.E.C.C. 1 29.02.2016

EJEMPLO -RECORRIDO INORDEN


21
33

13

10

18

Recorrido InOrden:

25

40

10, 13, 18, 21, 25, 33, 40

RECORRIDO POSTORDEN

Proceso:
Recorre en postorden el subrbol izquierdo.
Recorre en postorden el subrbolderecho.
Visita la raz del rbol.

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

EJEMPLO -- RECORRIDO
POSTORDEN
21
33

13

10

18

25

40

Recorrido en Postorden: 10, 18, 13, 25, 40, 33, 21

EJEMPLO
Recorrido en Preorden

12

12, 7, 4, 2, 9, 8, 11, 21, 16, 19, 25


21

Recorrido en Inorden
4

25

16

2, 4, 7, 8, 9, 11, 12, 16, 19, 21, 25


Recorrido en Postorden

2
8

11

19

2, 4, 8, 11, 9, 7, 19, 16, 25, 21, 12

EJEMPLO
GENERAL 2
#

@
A

2
$

Recorrido en Preorden

#, @, 2, $, 8, A, 5, %

Recorrido en Inorden
2, $, @, #, 5, A, 8, %

Recorrido en Postorden
$, 2, @, 5, A, %, 8, #

RECORRIDOS CONVERSOS

Visitan los nodos en orden contrario es decir, primero a


la derecha y despus a la izquierda.

Recorridos conversos:

UPB 1

IS

INORDEN CONVERSO

PREORDEN CONVERSO

POSTORDEN CONVERSO

Sin embargo, No es muy comn encontrar una aplicacin


para ellos.

1 EDA 1 E.E.C.C. 1 29.02.2016

RECORRIDOS NIVEL PORNIVEL

Recorre el rbol en forma horizontal.

$
Recorrido Nivel por Nivel

%
A

UPB 1

IS

&

1 EDA 1 E.E.C.C. 1 29.02.2016

$, %, #, A, &

IMPLEMENTACIN DEL RECORRIDO


NIVEL POR NIVEL

UPB 1

Para implementar este recorrido se utiliza una Fila que


almacena apuntadores a los nodos del rbol.

Proceso:

IS

Meter la referencia al nodo raz en una Fila.

Mientras la Fila no se vace:

Sacar una referencia de la Fila y procesar el nodo apuntado.

Meter a la Fila las referencias a los hijos del nodo procesado (si
stos existen).

1 EDA 1 E.E.C.C. 1 29.02.2016

TAREA
EQUIPOS DE 2 PERSONAS
ELABORAR PROGRAMA (PROYECTO)
ELABORAR VIDEO EXPLIC ATIVO
PRESENTAR EL VIDEO LA PRXIMA CLASE
TRAER EL PROYECTO FUNCIONANDO
FECHA DE ENTREGA : 07 -MARZO-2016

UPB 1

IS

1 EDA 1 E.E.C.C. 1 29.02.2016

ELABORAR EL SIGUIENTE ABB

1. Recorrido en Preorden

15

12, 7, 4, 2, 9, 8, 11, 21, 16, 19, 25


21

2. Recorrido Inorden
4

25

16

2, 4, 7, 8, 9, 11, 12, 16, 19, 21, 25


3. Recorrido Postorden

2
8

11

19

4. Agregar
50, 10, 17, 24, 30, 15, 1, 5, 22
5. Hacer recorridos
6. Eliminar (escoger mtodo)
7, 15, 16, 4, 8
7. Hacer recorridos

2, 4, 8, 11, 9, 7, 19, 16, 25, 21, 12

You might also like