Está en la página 1de 18

750080M Fundamentos

de Programacin
paula.figueroa@correounivalle.edu.co

Contenido de la clase
1. rboles

2. Ejemplos
3. Representacin de rboles

4. rboles usando listas


5. rbol binario con listas

6. Ejemplo
7. Ejercicios

rboles
Los

rboles

son

usados

para

representar

informacin en la que existe una relacin de


jerarqua.

Ejemplo:

rboles

genealgicos,

filogenticos, de sintaxis.
Los

rboles

son

considerados

datos

recursivos porque sus elementos son rboles

Ejemplos

Ejemplos

Ejemplos

Representacin de rboles
Para representar rboles debemos tener en cuenta las
siguientes definiciones:
nodo

hoja: que no tiene nodos hijos (sucesores).


raz: que no tiene nodos predecesores.

Subrbol: el conjunto de todos los predecesores de un


nodo

Representacin de rboles

Representacin de rboles
En

Dr.

Racket

podemos

representar

rboles

usando listas dentro de listas.


Cuando la cantidad de hijos de un nodo no es

restringida, es ms apropiado usar listas.

rboles usando listas


rbol binario es:
nodo: lista de tres elementos: nmero, rbol izquierdo y rbol derecho.
Un nodo es:

empty

(list <numero> <subrbol izquierdo> <subrbol derecho>)

rbol genealgico:
nodo: Nombre, madre y padre.
Un nodo es:

empty

(list <nombre> <madre> <padre>)

rbol binario con listas

Ejercicio
Representar

estructura.

el

rbol

anterior

como

una

Operaciones principales con


rboles
Arboles binarios:

es hoja?: retorna un booleano, true si el nodo es hoja, false si

tiene subrboles.
retornar rbol izquierdo: retorna un rbol.
retornar rbol derecho: retorna un rbol.
Construir un arbol: recibe los datos y las relaciones y retorna un arbol
Por qu son importantes?
Porque nos permiten hacer operaciones con los rboles, como recorrerlos,
contar los nodos, averiguar cuales son los pares, etc

Operaciones principales con


rboles

Ejemplo
Funcin que permite contar cuantos nodos tiene un rbol
binario:
Idea: contar cuantos nodos tiene el rbol izquierdo,
contar cuantos tiene el rbol derecho y sumar teniendo
en cuenta la raz. Si el rbol es vaco, entonces el
total de nodos es cero.

Ejemplo
;;Contrato
;;cuantos: arbol_binario -> numero

;;Propsito
;;Funcin que retorna la cantidad de nodos que contiene un rbol
binario
;;Ejemplos:

Ejemplo

Si cambiramos la representacin de los rboles el programa


sera el mismo con ambas representaciones, esto se debe a que
las operaciones del TAD tienen el mismo nombre.
Esto es la interfaz de las operaciones, y hace que las
operaciones bsicas del TAD se puedan usar sin importar su
implementacin.

Ejercicios
1. Disee un programa que cuente los nodos pares.
2. Disee un programa que retorne los nmeros de los nodos impares.
3. Cuales son las operaciones principales de un rbol genealgico?
4. Escriba un ejemplo de rbol genealgico.
5. Realice las funciones anteriores con estructuras