You are on page 1of 9

Instituto Tecnolgico Superior De Atlixco

Ingeniera en sistemas Computacionales

Programacin Lgica y Funcional

Prctica 12

RBOLES

Alumno: Daniel Martnez Villegas

Asesor: Julieta Santander Castillo

09 de Marzo de 2017
ndice
Objetivo............................................................................................................... 3
Marco Terico...................................................................................................... 3
rbol................................................................................................................ 3
Arboles binarios............................................................................................. 3
Arboles Binarios de Bsqueda en Haskell:......................................................3
Metodologa......................................................................................................... 4
Materiales............................................................................................................ 4
Desarrollo y resultados......................................................................................... 4
Conclusin........................................................................................................... 8
Referencias.......................................................................................................... 9
Objetivo
Conocer e implementar el comportamiento de un rbol para poder conocer
los diferentes recorridos que existen en un rbol.

Marco Terico
Para poder comprender el comportamiento de un rbol es importante
conocer los siguientes elementos:

rbol
Un rbol es una estructura no lineal a cclica utilizada para organizar informacin
de forma eficiente. [1]

Arboles binarios
rboles binarios. Un rbol binario es un conjunto finito de elementos, el cual est
vaco o dividido en tres subconjuntos separados: El primer subconjunto contiene
un elemento nico llamado raz del rbol. El segundo subconjunto es en s mismo
un rbol binario y se le conoce como subrbol izquierdo del rbol original.

El tercer subconjunto es tambin un rbol binario y se le conoce como subrbol


derecho del rbol original. El subrbol izquierdo o derecho puede o no estar vaco.
Cada elemento de un rbol binario se conoce como nodo del rbol.

Arboles Binarios de Bsqueda en Haskell:


Definicin:

data Arbol a = Nodo a (Arbol a) (Arbol a) | Nil

deriving Show

Se puede leer como: "Un rbol sobre elementos del tipo a puede ser construido
de dos formas:

(1) aplicando la funcin constructora Nodo a tres parmetros: el primero de tipo a:


el segundo de tipo rbol sobre a: el tercero de tipo rbol sobre a -- -- o (2) usando
la constante Nil para indicar rbol vaco. [2]
Metodologa
Se necesita el acceso al centro de cmputo para poder ingresar a un
laboratorio que permita ejecutar el software Haskell. Se pretende desarrollar la
practica 12 para poder conocer el comportamiento de un rbol y los tipos de
recorridos que tiene.

Materiales
Los materiales para poder desarrollar esta prctica son las siguientes:

Equipo de cmputo del laboratorio.


Software (Haskell).
Informacin sobre rboles.
Bloc de notas.

Desarrollo y resultados
Los pasos que se llevaron a acabo se describen de la siguiente manera:

1. En un archivo Bloc de notas se crean las siguientes funciones que permitan


crear un rbol donde contendr, tanto los nodos como las hojas. Lo primero
que se crear es; determinar la funcin que permita posicionar las hojas que
contendr el rbol, posteriormente el nmero de nodos. Se podr observar
en la ilustracin 1.
Ilustracin 1 Funcin crear rbol

2. Una vez terminada todas las funciones, se guarda el archivo con


extensin .hs para que pueda ser invocada en Haskell (vase Ilustracin 2).
Ilustracin 2 Guardar archivo

3. A continuacin se ejecuta Haskell como se muestra en la lustracin 3.

Ilustracin 3 Ventana principal de Haskell

4. Despus se abre el archivo dando clic sobre el icono abrir, y se determina el


archivo a ejecutar. Una vez identificada el archivo se dar clic en Abrir,
como se muestra en la ilustracin 4.
Ilustracin 4 Abrir Archivo .hs

5. Si el archivo es correcto pasara al programa principal, como se podr


observar en la ilustracin 5.

Ilustracin 5 Cargar Archivo

6. Ahora se manda a llamar la funcin rbol para poder verificar como est
conformado, es decir; cuantas hojas y nodos van a formal el rbol. Se
podr observar en la ilustracin 6.

Ilustracin 6 Resultado de la Funcin rbol


7. Posteriormente se manda a llamar la funcin nHojas para verificar el
nmero de hojas que tiene el rbol. La funcin nNodos muestra el
nmero de nodos que tiene.
La funcin profundidad lo que hace es tomar el nodo que se encuentra
ubicado en la parte central de los nodos. En la funcin preorden toma los
nodos de acuerdo al siguiente orden; raz, izquierda y derecha. Mientras
que el Postorden toma los nodos de; izquierda, derecha, raz.
Entonces la funcin espejo manda tanto las hojas como los nodos de
derecha a izquierda, como su nombre lo indica (espejo). Y la funcin
ramaIzquierda muestra los nodos ubicados de lado izquierdo. Los
resultados se podrn observar en la ilustracin 7.

Ilustracin 7 Resultados

Conclusin
Durante esta prctica se observa que la forma de declarar un rbol es algo
sencillo mientras se siga el orden y la sintaxis que este interpreta. Al declarar un
rbol este debe de determinar tanto los nodos y las hojas para poder recuperar los
valores.
Los rboles son una forma de representar un conjunto finito de elementos que
permiten hacer el recorrido de este rbol, estas son utilizadas debido a que
permiten organizar informacin de forma eficiente.

Referencias

[1] cc.uma.es, [En lnea]. Available:


http://www.lcc.uma.es/~pacog/apuntes/pd/cap09.pdf. [ltimo acceso: 09 03
2017].
[2] wordpress, 2014. [En lnea]. Available:
https://algoritmos2014.files.wordpress.com/2014/03/abb.pdf. [ltimo acceso: 09
03 2017].

You might also like