Está en la página 1de 23

rboles y esquemas

algortmicos
Tema III

Bibliografa
Tema III (lecciones 15 a 22) del libro Campos Laclaustra, J.:
Estructuras de Datos y Algoritmos, Prensas Universitarias de
Zaragoza, Coleccin Textos Docentes, 1995
Capitulo 5 del libro X. Franch: Estructuras de datos.
Especificacin, diseo e implementacin, 3 edicin,
Ediciones UPC, 2001
Libro: Joyanes, L., Zahonero, I., Fernndez, M. y Snchez,
L.: Estructuras de datos. Libro de problemas, McGraw Hill,
1999., captulos 8, 9 y 10
Captulos 6 a 8, y 11 a 15 del libro Mart, Ortega, Verdejo:
Estructura de datos y mtodos algortmicos.
Ejercicios y problemas resueltos,
Pearson Prentice Hall, 2003.,

Y muchos otros....

rboles: concepto y
especificacin algebraica
(Leccin 15)

Conceptos, definiciones y terminologa bsica


rbol:
Conjunto de elementos de un mismo tipo,

denominados nodos, que pueden representarse


en un grafo no orientado, conexo y acclico, en el
que existe un vrtice destacado denominado raz
Por lo general es una estructura jerrquica

Definicin recursiva:
Un rbol n-ario (con n1) es un conjunto no vaco de

elementos del mismo tipo tal que:


Existe un elemento destacado llamado raz del rbol
el resto de los elementos se distribuyen en m subconjuntos

disjuntos (0 m n ), llamados subrboles del rbol original,


cada uno de los cuales es a su vez un rbol n-ario

Conceptos, definiciones y terminologa bsica


rbol ordenado:
Si en el conjunto de subrboles de un rbol n-ario
se supone definida una relacin de orden total, el
rbol se denomina ordenado

rbol ordenado con raz X y


subrboles A1 Am
Leyenda:

Nodo

rbol 3-ario de nmeros enteros


rbol

Conceptos, definiciones y terminologa bsica


Hoja:
Un rbol compuesto por un solo elemento se denomina
hoja
3

Raz
Nodo
rbol

33

51

Hoja
Hoja

15

55

Hoja

13

23

Hoja

Hoja

38

Hoja

Ejemplo de rbol 3-ario

Conceptos, definiciones y terminologa bsica


Camino: un camino es una secuencia de rboles A1,..As, s1,
tal que Ai+1 es subrbol de Ai, para todo 1is-1
Longitud de camino: nmero de rboles en la secuencia del
camino, menos 1
Por convenio: diremos que existe un camino de longitud 0, de
todo subrbol a si mismo
3

Camino desde
el rbol de raz
el nodo 3,
hasta el rbol
cuya raz es el
nodo 55, y su
7
longitud es 3
15

33

55

Camino desde
el nodo 9
hasta el 23, de
longitud 2

51

13

23

38

Conceptos, definiciones y terminologa bsica


Si en un rbol A existe un camino desde el subrbol A1 hasta el
subrbol A2, se dice que A1 es antecesor de A2 y que A2 es
descendiente de A1

Antecesores del rbol


cuya raz es el nodo
7, son los subrboles
que tienen como
races: el nodo 6, y el
del nodo 3, y sus
descendientes son
los subrboles que
tienen como races el
nodo 15, y el del 55

15

Antecesor del rbol


cuya raz es el nodo
6, es el rbol cuya
raz es el nodo 3
Descendientes del
rbol cuya raz es el
nodo 6 son todos los
subrboles que
cuelgan de el.

33

55

51

13

23

38

Conceptos, definiciones y terminologa bsica


Los antecesores o descendientes de un subrbol, distintos del
mismo subrbol, se denominan propios
El padre de un subrbol, es su primer antecesor propio, si existe
Los hijos de un subrbol, son sus primeros descendientes
propios, si existen
Dos subrboles son hermanos, si tienen el mismo padre
3

Su padre es
6

Sus hijos son


7

15

33

55

51

13

23

38

Sus hermanos son

Conceptos, definiciones y terminologa bsica


La altura de un rbol es la longitud del camino ms largo que
puede encontrarse en el rbol
La profundidad de un subrbol en un rbol, es la longitud del
nico camino existente desde el rbol hasta el subrbol
Un nivel, es el conjunto de subrboles de un rbol, con igual
profundidad (en el nivel 0 solo est el rbol original, en el nivel 1
sus hijos, etc)
11

La altura del
rbol (cuya raz
es el nodo 11),
es 3
Nivel 2

Nivel 3

15

33

55

Nivel 0
Nivel 1

51

13

La profundidad
del subrbol (en
el rbol de raz
11), es 2

23

38

Conceptos, definiciones y terminologa bsica


El grado de un rbol es el nmero mximo de hijos que pueden
tener sus subrboles
rbol n-ario rbol de grado n
rbol binario rbol de grado 2
Etc
11

15

33

55

51

13

23

38

rbol de grado 3

rboles Binarios
rbol binario:
Conjunto de elementos o nodos del mismo tipo, tal que:
o bien es el conjunto vaco, y entonces se llama rbol vaco
o bien es no vaco, en cuyo caso existe un elemento destacado
llamado raz, y el resto de los elementos se distribuyen en dos
subconjuntos disjuntos, llamados subrbol izquierdo y
subrbol derecho, cada uno de los cuales es un rbol binario
3

15

33

55

51

13

Especificacin de rboles binarios


espec rbolesBinarios
usa booleanos,naturales
parmetro formal
gnero elemento
fpf
gnero arbin
operaciones
: arbin {rbol vaco}
_<_,_>: elemento arbin arbin arbin

{operacin plantar}

parcial raz: arbin elemento


parcial subIzq, subDer: arbin arbin
vaco?: arbin bool
parcial altura: arbin natural
dominios de definicin iz,de:arbin; e:elemento
raz(e<iz,de>) subIzq(e<iz,de>) subDer(e<iz,de>) altura(e<iz,de>)
....

Especificacin de rboles binarios


.

ecuaciones iz,de:arbin; e:elemento


raz(e<iz,de>) = e
subIzq(e<iz,de>) = iz
subDer(e<iz,de>) = de
vaco?() = verdad
vaco?(e<iz,de>) = falso
(vaco?(iz))(vaco?(de)) altura(e<iz,de>) = 0
(vaco?(iz)) (vaco?(de))
altura(e<iz,de>) = suc(altura(de))
(vaco?(iz)) (vaco?(de)) altura(e<iz,de>) = suc(altura(iz))
(vaco?(iz)) (vaco?(de))
altura(e<iz,de>) = suc(max(altura(iz),altura(de)))
fespec

Recorridos en rboles binarios


Un recorrido de un rbol consiste en visitar todos los
elementos del rbol una sola vez
Recorridos en profundidad de rboles binarios:
Raz
1
Recorrido en pre-orden:

1. se visita la raz
2. se recorre en pre-orden el hijo izquierdo
3. se recorre en pre-orden el hijo derecho

2
Iz

Recorrido en post-orden:

1. se recorre en post-orden el hijo izquierdo


2. se recorre en post-orden el hijo derecho 1
3. se visita la raz

Iz

Recorrido en in-orden:

1. se recorre en in-orden el hijo izquierdo


2. se visita la raz
3. se recorre en in-orden el hijo derecho

De

Iz

Raz

De

Raz

De

Recorridos en rboles binarios


3

15

33

55

51

13

Ejercicio: Cul ser la secuencia de nmeros que se


obtendr al recorrer el rbol utilizando:
Recorrido en pre-orden
Recorrido en post-orden
Recorrido en in-orden

Recorridos en rboles binarios


3

15

33

55

51

13

Ejercicio: Cul ser la secuencia de nmeros que se


obtendr al recorrer el rbol utilizando:
Recorrido en pre-orden
Recorrido en post-orden
Recorrido en in-orden

Especificacin recorridos en rboles


binarios
espec recorridosrbolesBinarios
usa rbolesBinarios, listas {de elementos}
operaciones
preorden, inorden, postorden: arbin lista
ecuaciones iz,de:arbin; e:elemento
preorden() = []
preorden(e<iz,de>) = ( [e] & preorden(iz) ) & preorden(de)
inorden() = []
inorden(e<iz,de>) = ( inorden(iz) & [e] ) & inorden(de)
postorden() = []
postorden(e<iz,de>) = ( postorden(iz) & postorden(de) ) & [e]

fespec
Recordatorio

&: concatenacin de listas de elementos

[]: lista vaca

Recorridos en rboles n-arios


Un recorrido de un rbol consiste en visitar todos los
elementos del rbol una sola vez
Recorridos en profundidad de rboles n-arios: 1 Raz

Recorrido en pre-orden:

An
1. se visita la raz
2. se recorren en pre-orden todos los subrboles, de izquierda a
A1

derecha

N+1

Raz

Recorrido en post-orden:

N
A1

An

1. se recorren en post-orden todos los subrboles, de izquierda a


2.

derecha
se visita la raz

N+1

Recorrido en anchura
El recorrido en anchura de un rbol consiste en visitar
todos los elementos del rbol una sola vez, de la
forma:
primero se visitan los elementos del nivel 0, luego los
del nivel 1, y as sucesivamente,
En cada nivel, se visitan los elementos de izquierda a
derecha
Nivel 0
11
6

Nivel 2

Nivel 3

15

33

55

Nivel 1

51

13

23

38

Recorrido en anchura Especificacin


Algebraica para rboles binarios
espec recorridoAnchura
usa rbolesBinarios, listas {de elementos}, naturales
Operaciones
parcial nivel: arbin nat > lista
parcial nivelesSub: arbin nat > lista
anchura: arbin > lista
dominios de definicin a:arbin; i:nat
nivel(a,i) y nivelesSub(a,i) slo estn definidos si 0ialtura(a)
{y por lo tanto, no estn definidas para arbin vaco}
ecuaciones

Recorrido en anchura Especificacin


Algebraica para rboles binarios
ecuaciones e:elemento; i:nat; a,ai,ad:arbin
{Ecuaciones para nivel:}
nivel(plantar(e,ai,ad),0) = [e]
ai=vaco advaco i>0 nivel(plantar(e,ai,ad),i) = nivel(ad,i-1)
aivaco ad=vaco i>0 nivel(plantar(e,ai,ad),i) = nivel(ai,i-1)
aivaco advaco altura(ai)i-1 altura(ad)<i-1 i>0
nivel(plantar(e,ai,ad),i) = nivel(ai,i-1)
aivaco advaco altura(ai)<i-1 altura(ad)i-1 i>0
nivel(plantar(e,ai,ad),i) = nivel(ad,i-1)
aivaco advaco altura(ai)i-1 altura(ad)i-1 i>0
nivel(plantar(e,ai,ad),i) = nivel(ai,i-1) & nivel(ad,i-1)
{ AQU van las ecuaciones para nivelesSub y anchura.}

fespec

Recorrido en anchura Especificacin


Algebraica para rboles binarios
ecuaciones e:elemento; i:nat; a,ai,ad:arbin
.
{ AQU irn las ecuaciones para nivel}

{Ecuaciones para nivelesSub y anchura:}

i=altura(a) -> nivelesSub(a,i) = nivel(a,i)


i<altura(a) -> nivelesSub(a,i) = nivel(a,i) & nivelesSub(a,i+1)
anchura(vaco) = []
anchura(plantar(e,ai,ad)) = nivelesSub(plantar(e,ai,ad),0)
fespec

También podría gustarte