Вы находитесь на странице: 1из 37

Unidad 6: Arboles

Clase 1

Cristian Martnez

Temario

Motivacion

Unidad 6: Arboles Clase 1 Introduccion

Arboles

Recorridos de un
arbol
Dr. Cristian Martnez
Representacion en
Algoritmos y Estructuras de Datos memoria

Departamento de Informatica Conclusiones

UNSa

1er Cuatrimestre 2016


Unidad 6: Arboles
Outline Clase 1

Cristian Martnez

Temario

Motivacion Motivacion

Introduccion

Arboles
Introduccion Recorridos de un
arbol

Representacion en
Arboles memoria

Conclusiones

Recorridos de un arbol

Representacion en memoria

Conclusiones
Unidad 6: Arboles
Motivacion Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
Revisar algunos conceptos de arboles generales. memoria

Conclusiones
Unidad 6: Arboles
Respecto al Programa analtico vigente (Res.D Clase 1

633/2012) Cristian Martnez

Temario

Motivacion

Introduccion
La Unidad 6: Grafos comprende Arboles

I Grafos: definiciones previas. Propiedades. Clasificacion. Recorridos de un


arbol
Representacion, implementacion. Algoritmos de analisis Representacion en
y manipulacion. Problemas de grafos: Camino mas memoria

Conclusiones
corto, Arbol mnimo, Flujo maximo, Viajante de
comercio, coloreo, apareo. Aplicaciones.
I Arboles: definicion, terminologa, caractersticas,
propiedades, operaciones. Arboles binarios. Arboles
binarios de busqueda. Arboles balanceados. Arboles
n-arios. Implementacion de arboles. Aplicaciones.
Unidad 6: Arboles
Introduccion Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles
Las estructuras de datos vistas en las Unidades 4 y 5 Recorridos de un
arbol
(Contenedores Lineales), son tales que a cada elemento le
Representacion en
sigue otro elemento. memoria

Conclusiones

Esa linealidad es tpica en cadenas, listas, vectores, pilas,


colas, conjuntos, campos en los registros, etc.
Unidad 6: Arboles
Clase 1

Cristian Martnez

Temario

Motivacion

Pero existen otras estructuras de datos con caractersticas no Introduccion

lineales. Arboles

Recorridos de un
arbol
Es decir, se introduce el concepto de bifurcacion dado que Representacion en
memoria
en estas estructuras cada elemento puede tener
Conclusiones
diferentes siguientes elementos.

Estas estructuras reciben el nombre de arboles y grafos.


Unidad 6: Arboles
Algunos grafos Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Los dos primeros grafos son dirigidos. En tanto el ultimo es no


dirigido (y ademas bipartito).
Respecto a arboles, durante grafos hablamos de arbol y arbol
mnimo.
Unidad 6: Arboles
Ideas previas Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
Un arbol impone una estructura jerarquica sobre una arbol

coleccion de objetos. Representacion en


memoria

Los arboles genealogicos y los organigramas son ejemplos Conclusiones

comunes de arboles [Aho].


Unidad 6: Arboles
Ejemplos Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Figure: Un arbol genealogico

Si bien no aparece, el papa de Marge es parecido al jefe de


polica.
Unidad 6: Arboles
Ejemplos Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Figure: Un organigrama (Fac. Cs. Forestales UNSe)


Unidad 6: Arboles
Definiciones Clase 1

Cristian Martnez
Un arbol es una coleccion de elementos llamados nodos, uno
Temario
de los cuales se distingue como raz, junto con una relacion Motivacion
(llamada de paternidad) que impone una estructura Introduccion
jerarquica sobre los nodos. Arboles
Formalmente, definamos un arbol [Aho]: Recorridos de un
arbol
1. Un solo nodo es, por s mismo, un arbol. Ese nodo es
Representacion en
tambien la raz de dicho arbol. memoria

Conclusiones
2. Suponga que n es un nodo y que A1 , A2 , . . . , Ak son
arboles con races n1 , n2 , . . . , nk , respectivamente. Se
PUEDE CONSTRUIR un nuevo arbol haciendo que n
sea EL PADRE de los nodos n1 , n2 , . . . , nk . En este
nuevo arbol, n es la raz y A1 , A2 , . . . , Ak los subarboles
de la raz. Los nodos n1 , n2 , . . . , nk reciben el nombre
de hijos del nodo n.

Kruskal trabaja con un bosque que es una coleccion de . . .


Unidad 6: Arboles
Otra definicion Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Un arbol (tree) es un conjunto finito de nodos. Es una Arboles

estructura jerarquica aplicable sobre una coleccion de Recorridos de un


arbol
elementos u objetos llamados nodos, uno de los cuales es Representacion en
conocido como raz [Torres]. memoria

Conclusiones

Una mas: Un arbol es una estructura de datos no lineal y


homogenea en el que cada elemento puede tener varios
elementos posteriores, pero tan solo un elemento anterior.
Unidad 6: Arboles
Algunos arboles Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Figure: 5 arboles

Un nodo de por s es un arbol (Fig. a).


Kruskal propone para obtener un arbol mnimo (partiendo de un
bosque), la union de arboles (Fig. b).
Unidad 6: Arboles
Que tipo de contenedores son? Clase 1

Cristian Martnez

Temario

Motivacion
Los arboles son estructuras no lineales y dinamicas. Introduccion

No lineales, debido a que a cada elemento (nodo) del arbol Arboles

pueden seguirle varios elementos. Recorridos de un


arbol
Dinamicas, puesto que la estructura arbol puede cambiar Representacion en
durante la ejecucion del programa. memoria

Conclusiones

Estructura de datos
Es una forma de organizar un conjunto de datos elementales
de manera de facilitar su manipulacion. Ejemplos: vectores,
listas enlazadas, pilas, colas, . . . arboles!
Unidad 6: Arboles
Que ocurre con los contenedores lineales? Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion
Tal como se observo anteriormente (con los contenedores Arboles
lineales), las listas enlazadas en general proporcionan mayor Recorridos de un
arbol
flexibilidad que los vectores, pero son estructuras lineales y
Representacion en
es difcil usarlas para organizar una representacion jerarquica memoria

(de informacion). Conclusiones

Por otra parte, si bien las pilas y colas reflejan cierta


jerarqua, estan limitadas a una sola dimension.
Mediante arboles, superamos esta limitacion [Drozdek].
Unidad 6: Arboles
Representacion grafica Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles
Se puede representar una estructura de arbol de diferentes
Recorridos de un
formas: arbol

Representacion en
I Diagrama de Venn. memoria

I Anidacion de parentesis. Conclusiones

I Representacion indentada.
I Grafos.
Unidad 6: Arboles
Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Ambas representaciones no resultan comodas para nosotros cierto?


Unidad 6: Arboles
Uso de arboles Clase 1

Cristian Martnez

Temario

Motivacion

Se usan arboles para: Introduccion

Arboles
I Representar datos jerarquicos. Recorridos de un
arbol
I Realizar busquedas en conjuntos de datos. Representacion en
memoria

Importante Conclusiones

Los arboles se usan para organizar la informacion en


sistemas de bases de datos como tambien para representar la
sintaxis del codigo fuente de programas y su tratamiento por
los compiladores.
Unidad 6: Arboles
Caractersticas y propiedades Clase 1

Cristian Martnez

Temario

Motivacion
I Todo arbol que no es vaco, tiene un unico nodo raz.
Introduccion
I La raz es un nodo que no tiene padre. Arboles

I Un nodo X es antecesor directo de un nodo Y, si el Recorridos de un


arbol
nodo X apunta al nodo Y. X es el padre de Y. Representacion en
memoria
I Todos los nodos que son descendientes directos (hijos)
Conclusiones
de un mismo nodo (padre) son hermanos (o bien,
nodos que son hijos del mismo nodo padre).
I Todo nodo que no tiene ramificaciones (hijos) se
denomina terminal u hoja.
I Todo nodo que no es raz ni terminal(hoja) se denomina
interior.
Unidad 6: Arboles
Caractersticas y propiedades (luego, ejemplo!) Clase 1

Cristian Martnez

I El grado de un nodo es el numero de descendientes Temario

Motivacion
directos que tiene.
Introduccion
El grado del arbol es el maximo grado de TODOS los
Arboles
nodos del arbol.
Recorridos de un
I Cualquier nodo debe ser alcanzable desde la raz a arbol

Representacion en
traves de una secuencia unica de arcos, llamada memoria
camino. El numero de arcos en un camino se llama Conclusiones
longitud de camino.
I El nivel de un nodo es la longitud del camino desde la
raz + 1 (que es equivalente al numero de nodos en el
camino).
I La altura de un arbol es el nivel maximo (de TODOS
los nodos del arbol) - 1.
I Rama es un camino desde el nodo raz a una hoja.
Unidad 6: Arboles
Analicemos el siguiente arbol Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

A es el nodo raz del arbol.


A es el padre de B y C. B y C son hermanos. Existen mas padres y
hermanos en el arbol?
I, E, J, K, G y L son hojas.
El nivel del nodo E es 3. El nivel del nodo L es 4.
El grado del nodo A es 2. El grado del nodo B es 3.
El grado del arbol es 3. Por que?
El arbol tiene 4 niveles. Por que?
La altura del arbol es 3. Por que?
Unidad 6: Arboles
Algunas operaciones sobre arboles Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion
Entre ellas: Arboles

I Listar todos los elementos. Recorridos de un


arbol
I Buscar un elemento. Representacion en
memoria
I Dado un nodo, listar los hijos. Conclusiones
I Borrar un elemento.
I Eliminar un subarbol (poda).
I Agregar un subarbol (injertar).
Unidad 6: Arboles
Clase 1
Recorrer un arbol significa visitar todos sus nodos. Por Cristian Martnez
ejemplo, para imprimir los valores del arbol.
Temario

Motivacion
Las tres formas de recorrido mas importantes son: Introduccion
I Orden Simetrico (inOrder). Arboles

Recorridos de un
I Orden Previo (preOrder). arbol

I Orden Posterior (postOrder). Representacion en


memoria

Conclusiones
Unidad 6: Arboles
inOrder Clase 1

Sea A un arbol con raz n y subarboles A1 , A2 , . . . , Ak , Cristian Martnez

Temario

el recorrido inOrder de los nodos de A esta constituido por Motivacion

los nodos de A1 en orden simetrico, seguidos de la raz y Introduccion

luego por los nodos de A2 , . . . , Ak , cada uno de ellos Arboles

tambien recorridos en orden simetrico. Recorridos de un


arbol

Representacion en
memoria

Conclusiones

Para este arbol, inOrder muestra: B, F, G, H, P, R, S, T, W, Y


y Z.
Unidad 6: Arboles
Pseudo-codigo para inOrder Clase 1

Cristian Martnez

Temario

Motivacion
inOrder()
Introduccion
{n es de tipoArbol}
Arboles
Si n es hoja entonces Recorridos de un
imprimir n arbol

Sino Representacion en
memoria
inOrder(hijo de n mas a la izquierda) Conclusiones
imprimir n
Para cada hijo h de n, desde la izquierda *
inOrder(h)

* excepto el hijo ubicado mas hacia la izquierda porque ya lo visite!


Unidad 6: Arboles
preOrder Clase 1

Sea A un arbol con raz n y subarboles A1 , A2 , . . . , Ak , Cristian Martnez

Temario

el recorrido preOrder de los nodos de A esta constitudo por Motivacion

la raz, seguido de los nodos de A1 en orden previo, luego Introduccion

por los nodos de A2 en orden previo y as sucesivamente Arboles

hasta los nodos de Ak . Recorridos de un


arbol

Representacion en
memoria

Conclusiones

Para este arbol, preOrder muestra: P, F, B, H, G, S, R, Y, T,


W y Z.
Unidad 6: Arboles
Pseudo-codigo para preOrder Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

preOrder() Arboles

{n es de tipoArbol} Recorridos de un
arbol
imprimir n Representacion en
memoria
Para cada hijo h de n, desde la izquierda
Conclusiones
preOrder(h)

Este recorrido no les recuerda a uno visto anteriormente?


Unidad 6: Arboles
postOrder Clase 1

Sea A un arbol con raz n y subarboles A1 , A2 , . . . , Ak , Cristian Martnez

Temario

el recorrido postOrder de los nodos de A esta constitudo Motivacion

por los nodos de A1 en orden posterior, luego por los nodos Introduccion

de A2 en orden posterior y as sucesivamente hasta los nodos Arboles

de Ak y finalmente por la raz. Recorridos de un


arbol

Representacion en
memoria

Conclusiones

Para este arbol, postOrder muestra: B, G, H, F, R, W, T, Z, Y,


S y P.
Unidad 6: Arboles
Pseudo-codigo para postOrder Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

postOrder() Arboles

{n es de tipoArbol} Recorridos de un
arbol
Para cada hijo h de n, desde la izquierda Representacion en
postOrder(h) memoria

Conclusiones
imprimir n

Primero visito a todos los hijos del arbol y luego imprimo la raz
Unidad 6: Arboles
Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles
Existen dos formas tradicionales de representar un arbol en
Recorridos de un
memoria [Torres],[Dale]: arbol

Representacion en
I usando arreglos. memoria

I usando listas enlazadas. Conclusiones


Unidad 6: Arboles
Mediante Arreglos Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Sea un arbol A con nodos 1, 2, . . . , n. Arboles

Recorridos de un
arbol
La representacion mas sencilla del arbol es mediante un Representacion en
arreglo lineal L, tal que cada elemento L[i] es el padre del memoria

Conclusiones
nodo i. Si L[i]=0, entonces i es la raz.

Esta representacion se basa en la propiedad que cada nodo


tiene un unico padre.
Unidad 6: Arboles
Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Figure: Un arbol y su representacion con arreglo


Unidad 6: Arboles
Mediante Listas Enlazadas Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles
La representacion en memoria es similar a la utilizada para
Recorridos de un
grafos. arbol

Representacion en
memoria
Representaremos un arbol usando un arreglo y listas Conclusiones
enlazadas. Sean 1, 2, . . . , n, los nodos del arbol, si el nodo i
tiene hijos, entonces se usara una lista enlazada donde cada
elemento de la misma contenga a cada uno de ellos.
Unidad 6: Arboles
Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol

Representacion en
memoria

Conclusiones

Figure: Un arbol y su representacion con listas enlazadas


Unidad 6: Arboles
Conclusiones Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles
I Los arboles son estructuras de datos usados para
Recorridos de un
representar informacion de tipo jerarquica y para arbol

realizar busquedas. Representacion en


memoria
I Los arboles generales son habitualmente representados Conclusiones

en memoria mediante arreglos o listas enlazadas. Para


operaciones de insercion, busqueda y eliminacion de
informacion, el tiempo computacional asociado es alto.
Unidad 6: Arboles
Clase 1

Cristian Martnez

Temario

Motivacion

Introduccion

Arboles

Recorridos de un
arbol
Fin de la clase
Representacion en
memoria

Conclusiones
Aho, A. et al. (1988),Estructura de datos y Unidad 6: Arboles
Clase 1
algoritmos, Addison Wesley. Cristian Martnez

Dale, N. et al. (1989), Pascal y Estructura de Temario


datos,Mc Graw-Hill. Motivacion

Introduccion
Drozdek, A. (2007), Estructura de datos y algoritmos
Arboles
en JAVA,Thomson.
Recorridos de un
arbol
Horowitz, E. et al. (1978),Fundamentals of computer
Representacion en
algorithms, Computer Science Press. memoria

Conclusiones
Torres, Fulbia (2006), Arboles, apuntes de la Catedra
Estructura de datos. Ing. Electronica. Universidad
Nacional Experimental Politecnica Antonio Jose de
Sucre. Venezuela.

Вам также может понравиться