Anda di halaman 1dari 37

Estructura de Datos- I sem 2010

Estructuras rboreas

Introduccin
Estructuras de datos estudiadas: Listas lineales y sus variantes. Las relaciones entre los nodos de informacin son lineales. Todos los nodos tienen un nico antecesor, excepto el primero que no tiene antecesor. Todos los nodos tienen un nico sucesor, excepto el ltimo que no tiene sucesor.

Introduccin
?

Qu estructura de datos se debe utilizar para representar estructuras jerrquicas o taxonmicas?

Ejemplo:
Director SubDir1 SubDir2 SubDir3

JDpto1

JDpto2

JDpto3

JDpto4

JDpto5

Introduccin

Ejemplo del uso de un rbol en la representacin de servidores de nombres de dominio

Introduccin

Ejemplo del uso de un rbol en la representacin de directorios en un sistema operativo

Definicin de rbol
Un rbol (tree) es un T.D.A. que consta de un conjunto finito T de nodos y una relacin R (paternidad) entre los nodos tal que:

Hay un nodo, especialmente designado, llamado la raz del rbol T. Los nodos restantes, excluyendo la raz, son particionados en m (m 0) conjuntos disjuntos T1, T2, ..., Tm, cada uno de los cuales es, a su vez, un rbol, llamado subrbol de la raz del rbol T. A los nodos que no son races de otros subrboles se les denomina hojas del rbol T, o sea, no tienen sucesores o hijos.

Definicin de rbol
Si n es un nodo y A1, A2, A3, A4, A5, , Ak son rboles con races n1, n2, n3, n4,, nk . Se puede construir un nuevo rbol haciendo que n se constituya en padre de los nodos n1, n2, n3, n4,, nk. En dicho rbol, n es la raz y A1, A2, A3, A4, A5, , Ak son los subrboles de la raz. Los nodos n1, n2, n3, n4,, nk reciben el nombre de hijos del nodo n.

Aclaraciones
Si el conjunto finito T de nodos del rbol es vaco, entonces se trata de un rbol vaco. En esta estructura existe slo un nodo sin padre, que es la raz del rbol.
Todo nodo, a excepcin del nodo raz, tiene uno y slo un padre. Los subrboles de un nodo son llamados hijos. Los nodos distintos a null se denominan : nodos internos(ni) ; de lo contrario, son llamados nodos externos (ne).

Ejemplos
Nodos Internos

A C

Padre de C:

A B C

Padre de E:
Padre de G G Padre de A: Hijos de A: Hijos de C:
null

B D
null
null null

E
null null

F
null null

NO
B F NO C G

Nodos externos

Hijos de F:

Aclaraciones
Para todo nodo k, distinto de la raz, existe una nica secuencia ( camino) de la forma: k0, k1, k2, k3, ..., kn, donde k0=raz y kn=k

Que se denomina RAMA DEL ARBOL


Con n >= 1, donde. ki es el sucesor de ki-1, para 1 <= i <= n, o sea, cada nodo ki de la secuencia es la raz de otro subrbol.

Ejemplos
A B C E F G Ramas

de A a G
de A a E de A a F

C es sucesor de A y
F es sucesor de C

Otras definiciones
Grado de un nodo: cantidad de hijos de un nodo. Grado de un rbol al mayor de los grados de todos sus nodos. Nodo hoja a un nodo sin hijos o con grado = 0. Nodo rama a un nodo que tiene hijos, o sea, a la raz de un subrbol.

Ejemplos
A B D H E I F J C

Grado
de A: de E: de G: de J: 2 3 1 0

G
K

Grado del rbol: 3 Nodos hojas: D, H, I, J, F, K Nodos ramas: A, B, C, E, G

Otras definiciones
Nivel de un nodo al nivel de su padre ms uno. Por definicin, la raz del rbol tiene nivel 0. Esta definicin es recursiva.

Ejemplos
A B D E F I C G

Nivel
de A: de E: de B: de I:

0
2 1 3 2

de G:

Otras definiciones
Altura: La cantidad de niveles del rbol
A B D E F I C 0 1 G 2 3

Altura = H(T)= Cantidad de niveles:4

Otras definiciones
rbol completo de nivel n a un rbol en el que cada nodo de nivel n es una hoja y cada nodo de nivel menor que n tiene, al menos, un subrbol no vaco.

Ejemplos
A B A

C
E

B G D E

rbol completo de nivel 2


Cada nodo del nivel n es una hoja

rbol no completo de nivel 2 Un nodo del nivel n-1 es una hoja

Otras definiciones
Padre de un nodo al nodo raz del subrbol ms pequeo que contiene a dicho nodo y en el cual l no es raz. Hijo de un nodo al (los) nodo(s) raz(ces) de uno de sus subrboles. Predecesor de un nodo al nodo que le antecede en un recorrido del rbol.

Hermano de un nodo a otro nodo hijo de su padre.

Ejemplos
A B C E Padre de G: C F H G

Hijos de C: E
G Hermanos de I:

Otras definiciones
rbol ordenado a todo rbol para el que se considera el orden relativo de los sucesores o subrboles de cualquier nodo. Es decir, en un rbol ordenado se habla de primero, segundo o ltimo hijo de un nodo en particular. El primer hijo de un nodo de un rbol ordenado es denominado el hijo mayor de ese nodo y el ltimo hijo es denominado el menor. El rbol es ordenado si al intercambiar el orden relativo de los subrboles de un nodo, representa una situacin semnticamente diferente.

Ejemplos: rbol genealgico de Mara


(sin los hermanos)
Mara Juan

Luisa
Lisa

Jos Elsa Pedro El rbol es ordenado

El primer subrbol corresponde al padre.

El segundo subrbol a la madre.

Otras definiciones
rbol orientado a un rbol para el cual no interesa el orden relativo de los sucesores o subrboles de cualquier nodo, ya que slo se tiene en cuenta la orientacin de los nodos. Ejemplo: La estructura organizativa de una empresa, donde no es importante el orden de los subdirectores a la hora de representarlos en el rbol.

En la solucin de problemas informticos, los ms utilizados son los rboles ordenados.

Otras definiciones
Una floresta es una coleccin de dos o ms rboles disjuntos. Aclaraciones: Disjuntos significa que no hay nodos en comn entre dos rboles cualesquiera de la misma. De un rbol se obtiene una floresta al quitarle la raz, si tiene dos hijos o ms. De una floresta se obtiene un rbol al aadir un nodo que sea raz de todos los rboles que la conforman.

Ejemplos
A B C E B G D E

B
F G

Es un rbol Es una floresta

NO es una floresta

Definicin de rbol Binario


Un rbol binario (en ingls binary tree) es un rbol ordenado de, a lo sumo, grado 2. Aclaraciones: A lo sumo grado 2 significa que cada nodo tiene como mximo dos hijos, o sea, dos subrboles. Al ser ordenado el rbol, importa el orden de los subrboles, es decir, que ser necesario especificar de cada nodo cul es el hijo izquierdo y cul el hijo derecho.

Ejemplo
Mara Juan Luisa Lisa

Jos Elsa Pedro

El rbol genealgico es un rbol binario. Cada nodo tiene dos hijos

Es significativo el orden de los subrboles.

rbol Binario: Caractersticas


Cada nodo del rbol binario contiene: Una referencia a su informacin. Un apuntador a su hijo izquierdo. Un apuntador a su hijo derecho. Informacin

Hijo Izquierdo

Hijo Derecho

Recorridos de un rbol Binario


Los recorridos se clasifican de acuerdo al momento en que se visita la raz del rbol y los subrboles izquierdo y derecho.
Existen tres recorridos: Recorrido en Preorden Recorrido en orden simtrico o inorden

Recorrido en orden final o Postorden

Recorrido en Preorden
1. Visitar la raz.

2. Recorrer subrbol izquierdo en preorden.


3. Recorrer subrbol derecho en preorden.

Recorrido en Preorden
A B D E F C G

Recorrido: A B D E C F G 1. Raz. 2. Subrbol izquierdo en preorden. 3. Subrbol derecho en preorden.

Recorrido en InOrden
1. Recorrer subrbol izquierdo en simtrico.

2. Visitar la raz.
3. Recorrer subrbol derecho en simtrico.

Recorrido en InOrden
A B D E F C G

Recorrido D B E A F C G 1. Subrbol izquierdo en simtrico. 2. Raz. 3. Subrbol derecho en simtrico.

Recorrido en Postorden
1. Recorrer subrbol izquierdo en orden final.
2. Recorrer subrbol derecho en orden final. 3. Visitar la raz.

Recorrido en PostOrden
A B D E F C G

Recorrido D E B F G C A 1. Subrbol izquierdo en orden final. 2. Subrbol derecho en orden final. 3. Raz.

Otras definiciones
Longitud de Camino Interno(LCI): Suma de todos los niveles de los nodos internos del rbol. Logitud de Camino Externo(LCE): Suma de los niveles de los nodos externos

Ejemplos
LCI=1+1*2+2*4+3*2
A 0 C E
Cantidad de nodos de ese nivel

LCI=18

B
D

1
LCE=3*6+4*4=34 G 2
Nivel donde se encuentran los externos

F I

Cantidad de nodos externos de ese nivel