Recorrido Sobre Árboles

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

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, las búsqueda en profundidad y
las búsquedas en amplitud.

Búsquedas no informadas
Las búsquedas no informadas son aquellas en que se realiza el viaje por todo el árbol sin
tener una pista de donde pueda estar el dato deseado. Este tipo de búsquedas también se
conocen como búsquedas a ciegas.
Para comprender mejor que es una búsqueda no informada expondremos el siguiente
ejemplo:
Imagine que vamos por la carretera y de repente encontramos dos caminos, el problema a
qui es que uno después de 50 kilómetros esta en construcción y el otro nos lleva a nuestro
destino, sin embargo ninguno de los caminos tiene señalamiento. Lo que tendríamos que
hacer es recorrer el primero 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.
Las siguientes métodos de búsqueda que veremos a continuación(Búsqueda en profundad
y Búsqueda en amplitud) pertenecen a las búsquedas no informadas.

Búsqueda en profundidad
Recorrido Pre-orden: El recorrido inicia en la Raíz y luego se recorre en pre-orden cada
unos de los sub-árboles de izquierda a derecha.
Esta definición puede ser un poco compleja de entender por lo que mejor les dejo la siguiente
imagen.
Fig. 12:En la imagen podemos ver el orden en que es recorrido el árbol iniciando desde la Raíz.

Fig. 13: Codigo de una


función recursiva que recorre un árbol en preorden.

Recorrido Pos-orden: Se recorre el pos-orden cada uno de los sub-árboles y al final se


recorre la raíz.
Para comprender mejor esta definición observemos la siguiente imagen:
Fig. 14: En la imagen podemos observar como se realiza el recorrido en Pos-Orden, Sin
embargo es importante notar que el primer nodo que se imprime no es la Raiz pues en este
recorrido la Raíz de cada Sub-Árbol es procesado al final, ya que toda su descendencia ha sido

procesada. Fig. 15: Código de


una función recursiva que recorre un árbol en posorden
Recorrido in-orden: Se recorre en in-orden el primer sub-árbol, luego se recorre la raíz y al
final se recorre en in-orden los demas sub-árboles
Fig. 16:En la imagen se muestra como es el recorrido In-Orden, Podemos apreciar que la Raíz
no es el primero elemento en ser impreso pues este recorrido recorre su rama izquierda, luego
la raíz del sub-árbol y luego la rama derecha.

Fig. 17: Código de una


función recursiva que recorre un árbol en inorden

Búsqueda en amplitud.
Se recorre primero la raíz, luego se recorren los demas nodos ordenados por el nivel al que
pertenecen en orden de Izquierda a derecha.
Este tipo de búsqueda se caracteriza por que la búsqueda se hace nivel por nivel y de
izquierda a derecha.
Fig. 18: En la
imagen se observa como es que un nodo es buscado mediante la búsqueda en profundidad.
En la imagen podemos observa que el árbol es recorrido en su totalidad pero esto no siempre
es a sí, ya que el algoritmo se detiene cuando el elemento buscado es encontrado.

Fig. 19: Código


de un función que recorre el árbol en amplitud.
Si observamos el código de forma minuciosa podemos observar dos puntos muy
interesantes, el primero es que esta función no es recursiva, y la segunda es que se utiliza
una Cola para controlar el flujo del recorrido.
Los pasos para hacer el recorrido es el siguiente:

1. Se agrega la Raíz a la cola de nodos por visitar


2. Mientras que la cola no este vacía se saca el primer elemento de la cola y
continuamos con el paso 3, Pero; si la cola esta vacía entonces nos vamos al paso
5.
3. Se valida si el elemento sacado de la pila es el que estamos buscando, Si lo es,
entonces hemos terminado, Si no lo es se agregan todos los hijos del nodo a la pila
de nodos pendientes por procesar.
4. Regresamos al paso 2.
5. Terminamos sin un resultado.
Conclusiones
Como hemos observado los arboles son estructuras bastante complejas, tiene una gran
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.
En esta publicación hemos visto los puntos vas relevantes a en cuenta a lo que son 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

También podría gustarte