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

ESTRUCTURAS DE DATOS

SEMANA 7
Árboles

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 7
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 7
ÍNDICE

OBJETIVO ESPECÍFICO ......................................................................................................................... 4


INTRODUCCIÓN ................................................................................................................................... 4
1. CONCEPTO DE ÁRBOLES .............................................................................................................. 4
2. REPRESENTACIÓN DE ÁRBOLES................................................................................................... 7
3. LONGITUD DE CAMINO INTERNO Y EXTERNO ............................................................................ 9
3.1. LONGITUD DE CAMINO INTERNO ..................................................................................... 10
3.2. LONGITUD DE CAMINO EXTERNO ..................................................................................... 11
4. OPERACIONES CON ÁRBOLES.................................................................................................... 12
5. APLICACIONES CON ÁRBOLES ................................................................................................... 14
5.1. ÁRBOL B, B+, B*................................................................................................................. 14
5.2. ÁRBOL ROJO-NEGRO ......................................................................................................... 15
COMENTARIO FINAL.......................................................................................................................... 17
REFERENCIAS ..................................................................................................................................... 18

3
ESTE DOCUMENTO CONTIENE LA SEMANA 7
ÁRBOLES

OBJETIVO ESPECÍFICO
 Analizar la representación, longitud y operaciones de la estructura de datos árboles.

INTRODUCCIÓN
Las estructuras de datos analizadas hasta ahora (pilas, colas y listas enlazadas) poseen la
característica común de ser lineales, es decir, cada dato o nodo tiene solamente un sucesor. Esta
peculiaridad conlleva a que su recorrido sea relativamente sencillo de ejecutar. Sin embargo, hay
otras estructuras de datos donde un nodo puede tener varios sucesores. Tal particularidad las
convierte en estructuras de datos no lineales.

El objetivo de esta semana es conocer los árboles que son estructuras de datos no lineales y que
ayudan a clasificar y ordenar los datos. Los árboles son, por ejemplo, la estructura primordial para
el índice de una base de datos.

Por lo anterior, es importante conocer la representación, uso e implementación de árboles,


diseñar algoritmos que utilicen árboles, codificar programas que utilicen árboles y conocer
aplicaciones que implementen árboles.

1. CONCEPTO DE ÁRBOLES
“Un árbol es una estructura de datos dinámica no lineal que se compone de nodos y arcos,
donde cada nodo almacena el dato, mientras los arcos representan las relaciones con otros
nodos; además, debe conocerse la dirección de un nodo particular denominado raíz, ya que este
sirve de referencia para iniciar el recorrido en el árbol” (López, 2012, p. 328).

“Los árboles son las estructuras de datos no lineales y dinámicas de datos más importantes del
área de computación. Dinámicas, puesto que las mismas pueden cambiar tanto de forma como
de tamaño durante la ejecución del programa. No lineales, puesto que cada elemento del árbol
puede tener más de un sucesor” (Cairó y Guardati, 2006, p. 176).

4
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Representación gráfica de un árbol

Fuente: https://goo.gl/TJtJoF

Véase el siguiente código en PHP:

5
ESTE DOCUMENTO CONTIENE LA SEMANA 7
CONCEPTOS RELACIONADOS A UN ÁRBOL

Un árbol se puede definir como una estructura jerárquica aplicada sobre una colección de
elementos u objetos llamados nodos, uno de los cuales es conocido como raíz, además, se crea
una relación o parentesco entre los nodos dando lugar a términos como padre, hijo, hermano,
antecesor, sucesor, ancestro, entre otros (Cairó y Guardati, 2006).

Formalmente se define un árbol de tipo T como una estructura homogénea resultado de

la concatenación de un elemento de tipo T con un número finito de árboles disjuntos,

llamados subárboles. Una forma particular de árbol es el árbol vacío. Los árboles son

estructuras recursivas, ya que cada subárbol es a su vez un árbol (Cairó y Guardati, 2006,

p. 177).

Pero para entender de mejor forma estos conceptos se ejemplificarán con el dibujo esquemático
anterior de una estructura de datos tipo árbol:

a) Raíz: nodo del cual parte el recorrido del árbol. En este caso la raíz está representada por el
nodo con la letra A.
b) Padre: es el nodo que antecede a otro, es decir, aquel que tiene un apuntador hacia otro
nodo. Por ejemplo, el nodo A es padre de los nodos B, C y D.
c) Hijo: representa el nodo sucesor o el descendiente, es decir, aquel apuntado por otro nodo.
Los nodos E y F son hijos del nodo B.
d) Hermano: los nodos son hermanos cuando son hijos del mismo padre. Los nodos B, C y D son
hermanos debido a que son hijos comunes de nodo A.
e) Hoja: se le asigna este término a los nodos que no tienen hijos o sucesores.
f) Subárbol: es una sección de una jerarquía de un árbol, es decir, la rama que contiene los
nodos descendientes de un nodo particular.
g) Interior: se conoce con este término a aquellos nodos que no son raíz ni hojas del árbol. Los
nodos B, E y F forman el interior del árbol.
h) Nivel de un nodo: representa la cantidad de arcos recorridos para llegar a un nodo particular
(partiendo de la raíz). La raíz tiene nivel 1, mientras el nodo D tiene nivel 2.
i) Altura de un árbol: representa el valor más grande de los niveles de los nodos. El árbol que se
está analizando tiene altura 3.
j) Grado de un nodo: es la cantidad de nodos descendientes (hijos) de un nodo. La raíz tiene un
grado 3, mientras que el nodo B posee el grado 2.

6
ESTE DOCUMENTO CONTIENE LA SEMANA 7
k) Grado del árbol: representa el valor más grande de los grados de los nodos. El árbol analizado
tiene grado 3.

Para conocer más a fondo el concepto de árboles puede revisar


el siguiente video:

Árboles

2. REPRESENTACIÓN DE ÁRBOLES
Un árbol se puede representar de múltiples formas que dependerán de la cantidad de nodos,
niveles o grados que lo compongan y todas se consideran equivalentes. A continuación se
presentarán cinco notaciones diferentes correspondientes a un mismo árbol:

A. DIAGRAMA DE VENN

Diagrama consistente en dos o más áreas circulares que representan sendos conjuntos (totalidad
de elementos que tienen una característica común) que se interseccionan y que comparten los
subconjuntos representados por las áreas comunes.

Fuente: Cairó y Guardati (2006, p. 179).

B. ANIDACIÓN DE PARÉNTESIS

Es una estructura de datos homogéneos tal que establece una jerarquía entre sus elementos.

7
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Fuente: Cairó y Guardati (2006, p. 179).

C. NOTACIÓN DECIMAL DE DEWEY

Es una estructura jerárquica que está compuesta por categorías y subcategorías que se organizan
en forma de árbol, formándose divisiones y subdivisiones que dependen unas de otras.

Fuente: Cairó y Guardati (2006, p. 179).

D. NOTACIÓN IDENTADA

Es la forma de representar gráficamente las carpetas (directorios) de un sistema de archivos. En


este caso, una carpeta es un nodo padre de los archivos y subcarpetas contenidas en él.

Fuente: Cairó y Guardati (2006, p. 179).

E. GRAFO

Esta representación es la que comúnmente se utiliza y ha originado el término de árbol por su


parecido abstracto con una planta (raíz, ramas y hojas). Esto a pesar de que la raíz se esquematice
al principio o arriba (Cairó y Guardati, 2006).

8
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Fuente: Cairó y Guardati (2006, p. 179).

En el grafo se distinguen nodos (círculos) y arcos (líneas con flechas). Los primeros se usan para
almacenar la información y los últimos para establecer la relación entre los nodos. En esta imagen
los nodos almacenan letras y los arcos permiten ir de ciertos nodos a otros (Cairó y Guardati,
2006).

3. LONGITUD DE CAMINO INTERNO Y EXTERNO


Se define la longitud de camino X como el número de arcos que deben ser recorridos para llegar
desde la raíz al nodo X. Por definición la raíz tiene longitud de 1, sus descendientes directos
longitud de camino 2 y así sucesivamente (Cairó y Guardati, 2006).

Fuente: https://goo.gl/9ePnJU

9
ESTE DOCUMENTO CONTIENE LA SEMANA 7
3.1. LONGITUD DE CAMINO INTERNO
La longitud de camino interno (LCI) del árbol es la suma de las longitudes de camino de todos los
nodos del árbol. Esta medida es importante porque permite conocer los caminos que tiene el
árbol. Se calcula por medio de la siguiente fórmula:

Donde i representa el nivel del árbol y h su altura y ni el número de nodos en el nivel i (Cairó y
Guardati, 2006). Luego, el LCI del árbol del árbol anterior se calcula de la siguiente forma:

En el primer nivel hay un nodo, entonces sería: 1*1

En el segundo nivel hay dos nodos, entonces sería: 2*2


En el tercer nivel hay cinco nodos, entonces sería: 5*3
En el cuarto nivel hay cuatro nodos, entonces sería: 4*4

Finalmente se deben sumar todos los niveles:

LCI = 1*1 + 2*2 + 5*3 + 4*4

LCI = 1 + 4 + 15 + 16

LCI = 36

Entonces, de acuerdo al ejemplo planteado, este árbol tiene 36 caminos de recorrido posibles.

MEDIA DE LA LONGITUD DE CAMINO INTERNO

La media de la longitud de camino interno (LCIM) es importante, ya que permite conocer, en


promedio, el número de decisiones que se deben tomar para llegar a un determinado nodo
partiendo de la raíz. La media se calcula dividiendo la LCI por el número de nodos del árbol (n). Se
expresa de la siguiente manera:

Donde LCI representa la longitud de camino interno y n el número de nodos en el árbol (Cairó y
Guardati, 2006). De acuerdo al ejemplo anterior sería:

LCIM = 36/12

LCIM = 3

10
ESTE DOCUMENTO CONTIENE LA SEMANA 7
3.2. LONGITUD DE CAMINO EXTERNO
Antes de definir el concepto de longitud de camino externo se explicará el concepto de árbol
extendido y nodo especial (Cairó y Guardati, 2006).

 Árbol extendido: es aquel en el que el número de hijos de cada nodo es igual al grado del
árbol. Si alguno de los nodos del árbol no cumple con esta condición entonces deben
incorporarse al mismo, tantos nodos especiales como se requiera para llegar a cumplirla.

Siguiendo con el ejemplo anterior, el grado del árbol es 3 y es el número de nodos especiales
por lo que se debieron agregar 25 nodos para convertirlo en árbol extendido:

 Nodo especial: tienen como objetivo reemplazar las ramas vacías o nulas. No pueden tener
descendientes y normalmente se representan en forma de un cuadrado.

Teniendo claro estos breves conceptos se puede definir la longitud del camino externo (LCE) de un
árbol que es la suma de las longitudes de camino de todos los nodos especiales del árbol. Se
calcula con la siguiente fórmula:

Donde i representa el nivel del árbol y h su altura y nei el número de nodos especiales en el nivel i
(Cairó y Guardati, 2006). Se observa que i comienza desde el nivel 2, puesto que la raíz se

11
ESTE DOCUMENTO CONTIENE LA SEMANA 7
encuentra en el nivel 1 y no puede ser un nodo especial. Por tanto, de acuerdo al árbol ejemplo, su
LCE sería:

Entonces:

En el primer nivel: no hay nodo especial, porque es raíz.


En el segundo nivel hay un nodo especial, entonces sería: 1*2
En el tercer nivel hay un nodo especial, entonces sería: 1*3
En el cuarto nivel hay un nodo, entonces sería: 11*4
En el quinto nivel hay un nodo, entonces sería: 12*5

Finalmente, la LCE = 1*2 + 1*3 + 11*4 + 12*5 = 109

4. OPERACIONES CON ÁRBOLES


Un árbol puede ser recorrido de distintas formas. Existen básicamente tres maneras de recorrerlo.

1) EN PREORDEN:

a) Se visita la raíz.
b) Se visita el subárbol izquierdo.
c) Se visita el subárbol derecho.

12
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Siguiendo el ejemplo, el recorrido en preorden sería: A – B – D – I – E – F – J – K – C – G– H – L

2) INORDEN:

a) Se visita el subárbol izquierdo.


b) Se visita la raíz.
c) Se visita el subárbol derecho.

Siguiendo el ejemplo, el recorrido en inorden sería: I – D – B – E – J – F – K – A – G – C – L – H

3) EN POSTORDEN:

a) Se visita el subárbol izquierdo.


b) Se visita el subárbol derecho.
c) Se visita la raíz.

13
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Siguiendo el ejemplo, el recorrido en postorden sería: I – E – J – K – F – D – B – G – L – H – C – A

5. APLICACIONES CON ÁRBOLES


Los árboles se pueden aplicar para la solución de una gran cantidad de problemas. Por ejemplo, se
pueden utilizar para representar fórmulas matemáticas, para registrar la historia de un
campeonato de tenis, para construir un árbol genealógico, para el análisis de circuitos eléctricos y
enumerar los capítulos o secciones de un libro (Cairó y Guardati, 2006).

5.1. ÁRBOL B, B+, B*


Árbol B: es básicamente un árbol de búsqueda n-ario donde los nodos tienen p hijos como
máximo y en el cual se añade la condición de balanceo de que todas las hojas estén al mismo nivel.

Fuente: https://goo.gl/PwXtEg

Árbol B+: son una variante de los árboles B, que se utiliza en representación de diccionarios. La
estructura de los nodos hoja es distinta de la de los nodos internos. En esencia, la modificación
consiste en que en los nodos internos solo aparecen claves, mientras en los nodos hoja aparecen
las asociaciones (clave, valor).

14
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Fuente: https://goo.gl/uQGM7Z

Árbol B*: su principal característica es que si en los árboles B, teniendo en cuenta la anterior
definición los nodos deben estar ocupados como mínimo hasta la mitad, en los B* tienen que estar
ocupados más de dos tercios del máximo.

Para conocer más a fondo el concepto de Árbol B* puede revisar el siguiente


video:

Árbol B*

5.2. ÁRBOL ROJO-NEGRO


Es un árbol binario estricto (los nodos nulos se tienen en cuenta en la definición de las operaciones
todo nodo hoja es nulo).

 Cada nodo tiene estado rojo o negro.


 Nodos hoja (nulos) son negros.
 La raíz es negra (esta condición se impone para simplificar algunas operaciones).

Se deben cumplir las siguientes condiciones:

1) Un nodo rojo tiene dos hijos negros.


2) Todo camino de la raíz a cualquier hoja pasa por el mismo número de nodos negros.

15
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Fuente: https://goo.gl/b6ZRfN

La altura negra de un nodo, de ahora en adelante, se denotará por la letra H (13), para
diferenciarla de la altura normal (h). La altura negra de un nodo es igual a la altura del nodo
cuando solo se tienen en cuenta los nodos negros del subárbol cuya raíz es el nodo.

16
ESTE DOCUMENTO CONTIENE LA SEMANA 7
COMENTARIO FINAL
Una de las estructuras de datos más importantes en programación es el árbol. Pueden usarse los
árboles para representar la información en una estructura jerárquica. Los árboles pueden
procesarse en forma recursiva y son muy adaptables a pruebas matemáticas.

La idea de estructura jerárquica es muy usada en la práctica. Por ejemplo, los libros son a menudo
organizados como una sucesión de capítulos cada uno de los cuales son una sucesión de secciones
que puede tener subdivisiones, y así sucesivamente. Una empresa puede organizarse como las
colecciones de unidades comerciales cada una de las cuales pueden tener varias secciones. Las
secciones, a su vez, pueden tener subsecciones múltiples y así sucesivamente. El software es
organizado como una colección de módulos cualquiera, que puede constituirse de varios
submódulos, con el nivel de refinamiento que los diseñadores encuentren apropiado. En cierto
nivel, los módulos se expresan en unidades básicas como los objetos, los métodos o
procedimientos.

En otras palabras, las estructuras jerárquicas proporcionan una eficaz manera de organizar la
información. Por tanto, los árboles aportan una capacidad enorme para expresar la idea de
jerarquía.

17
ESTE DOCUMENTO CONTIENE LA SEMANA 7
REFERENCIAS
Cairó, O. y Guardati, S. (2006). Estructura de datos. 3.a edición. México: McGraw-Hill.

López, B. (2012). Estructura de datos orientado a objetos. 1.a edición. México: Alfaomega.

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2017). Árboles. Estructuras de Datos. Semana 7.

18
ESTE DOCUMENTO CONTIENE LA SEMANA 7
19
ESTE DOCUMENTO CONTIENE LA SEMANA 7

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