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

rbol 3-ario de nmeros enteros

Conceptos, definiciones y terminologa bsica


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

Raz Nodo
9

rbol

33

51

Hoja Hoja
15 55

Hoja

13

23

38

Hoja

Hoja

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
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 55 3

33

51

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


23 38

13

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 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

51

15

55

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 Sus hijos son


7 6 9

33

51

15

55

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)
La altura del rbol (cuya raz es el nodo 11), es 3 Nivel 2
15 7 11

Nivel 0 Nivel 1

33

51

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

Nivel 3

55

13

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

33

51

15

55

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

33

51

15

55

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 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>) ....

{operacin plantar}

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 De

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

Recorrido en post-orden:

Raz

Iz

De

Recorrido en in-orden:

2 1

Raz

Iz

De

Recorridos en rboles binarios


3 6 9

33

51

15

55

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 6 9

33

51

15

55

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
An 1. se visita la raz 2. se recorren en pre-orden todos los subrboles, de izquierda a A1

Recorrido en pre-orden:
derecha

N+1

N+1

Raz

N
A1

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


derecha se visita la raz

Recorrido en post-orden:

An

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 9

Nivel 1

Nivel 2
15

33

51

Nivel 3

55

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