Está en la página 1de 13

UNIDAD 6:

Contenedores No Lineales

Arboles

Apuntes de apoyo para clases teóricas.


Para una conceptualización completa de los temas, los alumnos deberán asistir a las clases
teóricas y completar con lectura del material bibliográfico propuesto.

8/4/2023 1
Bibliografía :
1. Hibbard, Thomas N y Yazlle, Jorge F. EUNSA. (2015) Matemática Discreta.

2. Aho, Hopcroft y Ullman. Addison Wesley. (1988). Estructuras de Datos y Algoritmos.

3. Brassard, Gilles; Bratley, Paul. PRENTICE HALL (1997). Fundamentos de Algoritmia..

4. Kolman - Ross-Wrigth , Estructuras de Matemática Discreta para la Computación. Cap 4


y 6.

5. D. E. Knuth. Ed. Reverté – Reimpresión Año 2002. El arte de programar ordenadores.


Clasificación y Búsquedas. Volúmen III . Pag. 462.
6. Richard Johnsonbaugh. Prentice Hall .Edición – Año 1997.Matemáticas Discretas

7. C. L. Liu - Mc Graw Hill – 2dta. Edición – Año 1995. Elementos de Matemática Discreta

2
➢ Objetivos de esta parte:

➢ Binarios De Búsqueda (ordenados) (ABB)

➢ Arboles ▪ Buscar -> Fc de Complejidad


➢ Operaciones básicas: ➢ Insertar
➢ Eliminar

8/4/2023
Inserción en un ABB ordenado
El objetivo es construir un ABB ordenado y que sirva para la búsqueda. El algoritmo que
se presenta a continuación, se inicia con un ABB vacío, y construye un ABB ordenado
cuando los objetos vienen en forma aleatoria.

insertar(x, A) = El subárbol izquierdo,


Si (A = Ø) (x, Ø, Ø) se reemplaza por lo
Sino que resulta de
Si (x = valor (A)) A insertar por izquierda
de A.
Sino
Si (x < valor(A)) A(izq → insertar(x, izq(A)))
Sino A(der → insertar(x, der(A)))

Ej.: supongamos A = Ø y, se desea insertar la sucesión de nros. aleatorios: 82, 35, 24,
88, 5, 58, 57, ...

82: insertar(82, A = Ø) = (82, Ø, Ø) Después de insertar A 82

8/4/2023 4
Inserción en un ABB ordenado …
insertar(x, A) =
Si (A = Ø) (x, Ø, Ø)
Sino
Si (x = valor (A)) A
Sino
Si (x < valor(A)) A(izq → insertar(x, izq(A)))
Sino A(der → insertar(x, der(A)))

35: insertar(35, (82, Ø, Ø)) = A(izq → insertar(35, izq(A)))


= A(izq → insertar(35, Ø)) = A(izq → (35, Ø , Ø))
A
82
= (82, (35, Ø , Ø) , Ø) A
82

Después de insertar
I D 35 Ø
izq(A) Ø Ø der(A)

Ø Ø
8/4/2023 5
Inserción en un ABB ordenado …
insertar(x, A) =
Si (A = Ø) (x, Ø, Ø)
Sino
Si (x = valor (A)) A
Sino
Si (x < valor(A)) A(izq → insertar(x, izq(A)))
Sino A(der → insertar(x, der(A)))

24: insertar(24, (82, (35, Ø , Ø) , Ø)) = A(izq → insertar(24, (35, Ø , Ø))))

= A(izq → insertar(24, Ø))


A A
82 = A(izq → (24, Ø , Ø)) 82

= (82, (35, (24, Ø , Ø) , Ø) , Ø)


35 Ø 35

Después de insertar
Ø Ø 24
8/4/2023 6
Inserción en un ABB ordenado …
insertar(x, A) =
Si (A = Ø) (x, Ø, Ø)
Sino
Si (x = valor (A)) A
Sino
Si (x < valor(A)) A(izq → insertar(x, izq(A)))
Sino A(der → insertar(x, der(A)))

88: insertar(88, (82, (35, (24, Ø , Ø) , Ø) , Ø)) = A(der → insertar(88, Ø))


= A(der → (88, Ø , Ø))
A
82
= (82, (35, (24, Ø , Ø) , Ø) , (88, Ø , Ø))
82 A
35 Después de insertar
35 88

24
24
8/4/2023 7
Inserción en un ABB ordenado …
insertar(x, A) =
Si (A = Ø) (x, Ø, Ø)
Sino
Si (x = valor (A)) A
Sino
Si (x < valor(A)) A(izq → insertar(x, izq(A)))
Sino A(der → insertar(x, der(A)))

x = 5, 58, 57:
insertar(x, (82, (35, (24, Ø , Ø) , Ø) ,(88, Ø ,Ø)), los alumnos…

82 A

35 88

24

8/4/2023 8
gt.jar.
https://people.ksp.sk/~kuko/gnarley-trees/
Demo de:
1) Insertar(x, ABB) / x  {82, 35, 24, 88, 5, 58, 57}

8/4/2023 9
Eliminación en un ABB ordenado:
Nodo* Eliminar(Nodo*A, int x) =
t = Buscar(x, A) // Busca el nodo cuyo valor es x , retorna un puntero t hacia el nodo con valor x
Si (t == Null) //no existe x
retornar A
Sino // t != Null // existe x y hay que analizar
Caso a) El nodo a eliminar es una hoja:
(t->izq == Null && t->der == Null) Padre

Caso b) El nodo a eliminar es un nodo interno con 1 hijo (izq o der):


Padre
Padre

Caso c) El nodo a eliminar es un nodo interno con 2 hijos (izq y der): elegir una estrategia
de reemplazo (el mayor del subárbol izq o el menor del subárbol derecho) y luego invocar
a eliminar(^nodo rojo o azul, valor(rojo o azul))

Padre

10
gt.jar.
https://people.ksp.sk/~kuko/gnarley-trees/
Demo de:
Eliminar (t, ABB) (Estrategia de Gnarley reemplazar por el menor del subárbol derecho)

8/4/2023 12
➢ Vimos:

➢ Binarios De Búsqueda (ordenados) (ABB)

➢ Arboles
Buscar -> Fc de Complejidad
➢ Operaciones básicas:
▪ Insertar
▪ Eliminar

8/4/2023
8/4/2023 20

También podría gustarte