Está en la página 1de 33

Árboles -Recorrido

[Estructura de Datos]
Computación
Mónica D. Gómez Rios

julio de 2020 mgomezr@ups.edu.ec 1


Agenda

2.5 Arboles - Recorrido

julio de 2020 mgomezr@ups.edu.ec


Recorrido sobre Árboles

• Los recorridos son algoritmos que nos permiten recorrer un árbol


en un orden especifico, los recorridos nos pueden ayudar
encontrar un nodo en el árbol, o buscar una posición determinada
para insertar o eliminar un nodo.

• Básicamente podemos catalogar las búsqueda en dos tipos:


• Búsquedas en profundidad y
• Búsquedas en amplitud

• Pero antes veremos las Búsquedas no informadas:


Búsquedas no informadas
• Son aquellas en la búsqueda se realiza por todo el árbol sin tener una pista
de donde pueda estar el dato deseado. Se conocen como búsquedas a
ciegas.

• Imaginemos que vamos por una carretera y de repente encontramos dos


caminos, el problema es que: El camino 1 indica que después de
50 kilómetros esta en construcción. El camino 2 nos lleva a nuestro destino,
sin embargo ninguno de los caminos tiene señalamiento. Lo que tendríamos
que hacer es recorrer el primer camino y después de 50 kilómetros
encontrarnos con que el camino esta en construcción, entonces tendríamos
que regresar para irnos por el segundo camino, el cual nos lleva a nuestro
destino(Para esto ya recorrimos los 50 kilómetros de ida y los 50 kilómetros
de regreso lo que nos da 100 kilómetros mas a nuestra ruta).

• A este tipo de escenarios en los cuales las búsquedas de hacen a ciegas los
conocemos como búsquedas no informadas.

• Para ello existen métodos de búsqueda:


• Búsqueda en profundad
• Búsqueda en amplitud.
Recorrido Árbol binario In-Orden

RAIZ
Recorrido Inorden

Proceso:
21
• Recorre en inorden el
subárbol izquierdo. 1 33
• Visita la raíz del árbol. 3
• Recorre en inorden el
subárbol derecho. 10 18 25 40

Aplicación: Desplegar en Recorrido en Inorden


orden creciente los elementos 10, 13, 18, 21, 25, 33, 40
del árbol si este es un ABB.
Estructuras de datos:

Árbol Binario ordenados según el recorrido


• Recorrido INORDEN
G
7
D K
4 11
B E J M
2 5 10 13
A C F II L
1 3 6 9 12

H
8

A-B
A-B-C-D-E-F
A-B-C-D-E
A-B-C-D
A-B-C
A-B-C-D-E-F-G
A-B-C-D-E-F-G-H
A-B-C-D-E-F-G-H-I
A-B-C-D-E-F-G-H-I-J
A-B-C-D-E-F-G-H-I-J-K
A-B-C-D-E-F-G-H-I-J-K-L
A-B-C-D-E-F-G-H-I-J-K-L-M
Ejemplo: Recorrido
In-Orden
No olvidar la estructura en
código

NODO

NodoHijoIzquierdo Dato NodoHijoDerecho

y
Nombre

null null
Preguntamos si está vacío
en la clase ArbolBinario

Función recursiva que recorre un árbol en in-orden


Código: Recorrido Pre-orden:
Recorrido Preorden

Proceso:
Visita el nodo raíz del árbol. 21
Recorre el preorden el subárbol
izquierdo del nodo raíz. 1 33
Recorre el preorden el subárbol 3
derecho del nodo raíz.
10 18 25 40

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

Árbol Binario ordenados según el recorrido


• Recorrido PREORDEN
G
1
D K
2 8
B E J M
3 6 9 12
A C F I L
4 5 7 10 13

H
11

G-D-B-A-C-E-F-K-J-I-H-M
G-D-B-A-C-E-F-K-J
G-D-B-A-C-E-F-K-J-I
G-D-B-A-C-E-F-K-J-I-H
G-D-B-A-C-E-F-K-J-I-H-M-L
G
G-D-B-A-C-E-F
G-D-B-A-C-E-F-K
G-D-B-A-C-E
G-D-B-A-C
G-D-B-A
G-D-B
-D
Código: Recorrido Pre-orden:
Código: Recorrido Post-orden:

Función recursiva que recorre un árbol en post-orden


Recorrido Postorden

Proceso:
Recorre en postorden el 21
subárbol izquierdo.
1 33
Recorre en postorden el 3
subárbol derecho.
Visita la raíz del árbol. 10 18 25 40

Aplicación: Liberar los nodos Recorrido en Postorden


de un árbol. 10, 18, 13, 25, 40, 33, 21
Estructuras de datos:

Árbol Binario ordenados según el recorrido


• Recorrido POSTORDEN
(PRIMERO LOS HIJOS G
LUEGO EL PADRE) 13
D K
6 12
B E J M
3 5 9 11
A C F I L
1 2 4 8 10

H
7

A
A-C-B-F-E-D-H
A-C-B-F-E-D-H-I
A-C-B-F-E-D-H-I-J
A-C-B-F-E-D-H-I-J-L-M-K
A-C-B-F-E-D
A-C-B-F-E
A-C-B-F
A-C-B
A-C-B-F-E-D-H-I-J-L
A-C-B-F-E-D-H-I-J-L-M
A-C-B-F-E-D-H-I-J-L-M-K-G
-C
Código: Recorrido Post-orden:
Inorden: GDBHEIACJKF
Preorden: ABDGEHICFJK
Postorden: GDHIEBKJFCA
Taller: Realizar el recorrido In-Orden,
Pre-Orden y Pos- Orden de los siguientes
12
ejercicios
2) #
1)
21 8
7 @

A %
2
4 25
9 16
$ 5
2
8 11 19

3)
Solución

Ejercicio 1 Ejercicio 2
Recorrido en Preorden Recorrido en Preorden
12, 7, 4, 2, 9, 8, 11, 21, 16, 19, 25 #, @, 2, $, 8, A, 5, %

Recorrido en Inorden Recorrido en Inorden


2, 4, 7, 8, 9, 11, 12, 16, 19, 21, 25 2, $, @, #, 5, A, 8, %

Recorrido en Postorden Recorrido en Postorden


2, 4, 8, 11, 9, 7, 19, 16, 25, 21, 12 $, 2, @, 5, A, %, 8, #

Ejercicio 3

Inorden: GDBHEIACJKF
Preorden: ABDGEHICFJK
Postorden: GDHIEBKJFCA
En la clase ArbolBinario
Ejemplo:

• Profundidad-primero
• Secuencia de recorrido de preorden:
F, B, A, D, C, E, G, I, H (raíz,
izquierda, derecha)
• Secuencia de recorrido de inorden: A,
B, C, D, E, F, G, H, I (izquierda, raíz,
derecha); note cómo esto produce
una secuencia ordenada
• Secuencia de recorrido de postorden:
A, C, E, D, B, H, I, G, F (izquierda,
derecha, raíz)

• Anchura-primero
• Secuencia de recorrido de orden por
nivel: F, B, G, A, D, I, C, E, H
Código: Búsqueda en amplitud

Si datoBuscado=7
Ejemplo:
Conclusiones:

• Los arboles son estructuras bastante complejas, tiene una gran cantidad de
aplicaciones en la ciencia y en la programación convencional. En los últimos
años este tipo de estructuras ha sido utilizadas con mucha frecuencia en la
Inteligencia artificial.

• Se ha visto los puntos vas relevantes a tener en cuenta sobre los arboles y
los principales métodos de búsqueda, sin embargo estamos lejos de cubrir
este tema en profundidad ya que existen muchísimos tipos de operaciones y
algoritmos que se pueden realizar sobre estas estructuras de datos.
Autores del contenido

❑ Ing. Mónica Gómez R


(mgomezr@ups.edu.ec)

julio de 2020

mgomezr@ups.edu.ec
julio de 2020 mgomezr@ups.edu.ec 33

También podría gustarte