Está en la página 1de 38

ANALISIS DE ALGORITMOS

ESTRUCTURAS DE DATOS
AVANZADAS
Arboles

Mg. Ing. Jaime Arturo Bravo Ruiz


1
Árboles

❑ Definición.

❑ Representación.

❑ Recorridos.

❑ Operaciones.

2
ARBOLES - DEFINICIÓN -

Del latín arborem; la real academia española, define


el árbol como: planta perenne, de tronco leñoso y
elevado que se ramifica a cierta altura del suelo,
produce ramas, que parten de un único tronco,
dando lugar a una nueva copa separada del suelo.

3
ARBOLES - DEFINICIÓN -

árbol
genealógico

4
ARBOLES - DEFINICIÓN -

❑ Estructura no lineal y de
dos dimensiones de datos.

❑ Los nodos de los arboles


contienen dos o más
enlaces.
❑ Normalmente se dibujan
en forma opuesta a los
árboles en la naturaleza.

5
ARBOLES - VOCABULARIO -
Punt Izq Info Punt
Der

Raíz

Inicio Padre o Antepasado N0

Hijo Izq Hijo Der


Descendiente N1
Descendiente

Sub-árbol Izq Hermanos N2

N3
Hojas
Sub-árbol Der
Nodo: 0,1,2 hijos
El nível Nx de un nodo, distancia a la raíz. Raíz Nivel 0 Todos los nodos son
Número máximo de nodos de cualquier nivel es 2N descendientes de la
6 raíz
TERMINOLOGÍA
• Nodo: Cada elemento en un árbol.
• Nodo Raíz: Primer elemento agregado al árbol.

Nodo Raíz
A

B C

D E F G

K
H
MÁS TERMINOLOGÍA
• 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

F y G son Nodos Hijos de C


D E F G
F y G son hermanos
K
H
MÁS TERMINOLOGÍA
• Nodo Hoja: Aquel nodo que no tiene hijos.

B C

D E F G
D, H, F y K son Nodos Hojas
K
H
MÁS TERMINOLOGÍA
• Subárbol:Todos los nodos descendientes por la izquierda o derecha de un nodo.

B C

D E F G
Subárbol derecho de C
K
H

Subárbol izquierdo de C
ALTURA Y NIVELES

A
Altura del árbol = 4 Nivel 0
B C
Nivel 1
D E F G
Nivel 2
K
H
Nivel 3

La Altura es la cantidad de niveles.


ELEMENTOS DEL ÁRBOL

• Nodo Raíz, Nodos Hijos, Nodos Hermanos,Altura, Recorridos, Dirección.


• Todo Árbol tiene un solo Nodo Raíz.
• Los Árboles pueden tener o no. Nodos Hijos. En caso de tenerlos, pueden
existir Nodos Hermanos.
• Si únicamente tiene un Nodo Raíz, su Altura = 0 y su Nivel = 1.
• Los Recorridos pueden ser en preorden, postorden y in orden.
• Un Árbol puede recorrerse en dirección Top-Down de arriba abajo, de abajo
arriba, (Down-Top). A partir de su rama Izquierda o a partir de su rama
Derecha.
TIPOS DE ÁRBOL
Llenos
Binarios
Completos
Equilibrados
Por su
estructura
Degenerados

Tipos de Balanceados
árboles

Binarios

B
Por su Binarios de
recorrido búsqueda B+
B*
B+ Prefijos
Multicamino
De Bits
2-4
R
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
PROCESO PARA AGREGAR NODOS...

• Reglas: (busca y agrega hojas)


– 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 9

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
17 26
ARBOLES - árbol binario -

Características
❑ Sus nodos contienen dos enlaces.
❑ El valor de sus nodos pudiese se NULL.
❑ El nodo raíz es el primer nodo de un árbol.
❑ Cada enlace en el nodo raíz se refiere a un hijo.
❑ El hijo izquierdo es el elemento menor a su raíz.
❑ El hijo derecho es el elemento mayor a la raíz.
❑ Los hijos de un nodo se conocen como descendientes.
❑ Un nodo sin hijos se conoce como nodo de hoja. 17
ARBOLES - Representación -

CONSTRUIR UN ÁRBOL BINARIO, CON LA SIGUIENTE


INFORMACIÓN.

18
ARBOLES - Representación -

raíz

NULL NULL

14

19
ARBOLES - Representación -

15>14

NULL

NULL NULL

14 15
20
4<14
ARBOLES - Representación -

NULL NULL NULL


NULL

14 15 4
21
ARBOLES - Representación -

NULL NULL
NULL
9<14 y 9>4
NULL NULL

14 15 4 9
22
ARBOLES - Representación -

NULL NULL
NULL

NULL
7<14 y 7>4 y 7<9

NULL NULL

14 15 4 9 7
23
ARBOLES - Representación -

NULL
NULL

NULL NULL NULL

NULL 18>14 y 18>15


NULL

14 15 4 9 7 18
24
ARBOLES - Representación -

3<14 y 3>4 NULL

NULL NULL NULL NULL


NULL

NULL NULL

14 15 4 9 7 18 3
25
ARBOLES - Representación -

NULL

NULL NULL NULL NULL


NULL

5<14 y5>4 y5<9 y5<7


NULL

NULL NULL

14 1 4 9 7 18 3 5
26
ARBOLES - Representación -

NULL

NULL NULL NULL


NULL

NULL NULL NULL

NULL NULL
16>14 y16>15
y16<18

14 15 4 9 7 18 3 5 16
27
ARBOLES - Representación -

Note que, 4 no es
mayor ni menor que NULL
4, motivo por el cual
NULL NULL NULL
la condición se hace NULL
falsa y no inserta
NULL NULL NULL

NULL NULL

14 1 4 9 7 18 3 5 16 4
28
ARBOLES - Representación -

NULL
¿Qué condiciones se NULL NULL
cumplieron para insertar NULL
el 20?
NULL NULL NULLNULL NULL

NULL NULL

14 15 4 9 7 18 3 5 16 4 20
29
ARBOLES - Representación -

NULL

NULL NULL
NULL
¿Y para el 17?
NULL NULL NULL NULL

NULL NULL NULL NULL

14 15 4 9 7 18 3 5 16 4 20 17
30
ARBOLES - Representación -

NULL

NULL NULL
NULL
¿Por qué el 9, 14 y 5
no se insertan?
NULL NULL NULL NULL

NULL NULL NULL NULL

14 15 4 9 7 18 3 5 16 4 20 17 9 14 5
31
ARBOLES - Representación -
FINALMENTE NUESTRO ÁRBOL BINARIO QUEDA EXPRESADO DE
LA SIGUIENTE MANERA:

32
ARBOLES - Recorridos -

Pre-Orden.
• 1. Visitar la raíz
• 2. Recorrer el sub-árbol izquierdo en pre-orden
• 3. Recorrer el sub-árbol derecho en pre-orden

In-Orden.
• 1. Recorrer el sub-árbol izquierdo en in-orden
• 2. Visitar la raíz
• 3. Recorrer el sub-árbol derecho en in-orden
22
Post-Orden.
• 1. Recorrer el sub-árbol izquierdo en post-orden
• 2. Recorrer el sub-árbol derecho en post-orden
33
• 3. Visitar la raíz
ARBOLES - Recorrido pre-orden -
1.Visitar la raíz PRE-ORDEN
2. Recorrer el sub-árbol izquierdo en pre-orden
3. Recorrer el sub-árbol derecho en pre-orden 1
14
4
4 1
15
5
1
3 9 18
8
7 1
16 20
6
1
5 17
7
14, 4, 3, 9, 7,5, 15,18,16, 17, 20 34
ARBOLES - Recorrido in-orden
-
1. Recorrer el sub-árbol izquierdo en in-orden
2. Visitar la raíz
1
3. Recorrer el sub-árbol derecho en in-orden 14
4
1
4 15
5
1
3 9 18
8
1
7 16 20
6
1
5 17
3, 4,5,7,9,14,15,16,17,18,20.
7 35
ARBOLES - Recorrido post-orden -
1. Recorrer el sub-árbol izquierd0 en post-orden
2. Recorrer el sub-árbol derecho en post-orden
3. Visitar la raíz 14

1
4 15
5
1
3 9 18
8
1 2
7 16 20
6 0
5 1
17
7 36
3,5,7,9,4,17,16,20,18,15,14.
ARBOLES - Operaciones -

Creación de un árbol crearArbol(nombreArbol)


Comprobación del estado arbolVacío(nombreArbol)->Booleano
Inserción de nodos Insertar(padre, valorInfo, posicion)
Borrado de nodos borrar(nombreArbol, valorInfo)
Búsqueda de un nodo pertenece(nombreArbol, dato)-> Booleano
buscar(nombreArbol, información)->referenciaNodo
Recorrido del árbol recorrer(nombreArbol, tipoRecorrido)
Acceso a los nodos info(referenciaNodo)->Información
izq(referenciaNodo)->enlace
der(referenciaNodo)->enlace
eshoja(referenciaNodo)->Booleano
Modificación de los nodos asignarInfo(referenciaNodo, valorInformacion)
asignarIzq(referenciaNodo, valorEnlace)
asignarDer(referenciaNodo, valorEnlace)

37
Bibliografía
➢ Cairo Osvaldo y Guardati Silvia. Estructura de datos. McGraw-Hill, 1992. México.

➢ Ceballos Sierra Francisco Javier. Enciclopedia del lenguaje C. AlfaOmega, 2007. México.

➢ Dale Nell y Lilly Susan. Pascal y estructuras de datos (2ª edición). McGraw-Hill, 1992. México.

➢ H. M. Deitel, P.J. Deitel. Como programar en C y C++ (2ª edición). Prentice Hall, 1995. México.

➢ Joyanes Aguilar, Luis. Fundamentos de programación. Algoritmos, estructuras de datos y objetos (3ª
edición). McGraw-Hill, 2003. España.

38

También podría gustarte