¿Qué es un árbol (En Estructura de datos)?
Un árbol es una estructura no lineal en la que cada nodo
puede apuntar a uno o varios nodos.
También se suele dar una definición recursiva: un árbol es
una estructura en compuesta por un dato y varios árboles.
Esto son definiciones simples. Pero las características que
implican no lo son tanto.
Las partes que conforman un árbol son:
- Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. En el ejemplo, 'L' y 'M' son hijos de 'G'.
- Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'.
- Los árboles también tienen características importantes como lo son que cada nodo sólo puede ser apuntado por otro nodo, es decir, cada nodo sólo tendrá un padre. Esto hace que estos árboles estén fuertemente jerarquizados, y es lo que en realidad les da la apariencia de árboles.
- Nodo raíz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al árbol. En el ejemplo, ese nodo es el 'A'.
- Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'.
- Nodo rama: aunque esta definición apenas la usaremos, estos son los nodos que no pertenecen a ninguna de las dos categorías anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.
Otra característica que normalmente tendrán los árboles es que todos los nodos contengan el mismo número de punteros, es decir, la misma estructura para todos los nodos del árbol. Esto hace que la
estructura sea más sencilla, y por lo tanto también los programas para trabajar
con ellos.
Tampoco es necesario que todos los nodos hijos de un nodo
concreto existan. Es decir, que pueden usarse todos, algunos o ninguno de los
punteros de cada nodo.
Un árbol en el que en cada nodo o bien todos o ninguno de
los hijos existe, se llama árbol completo.
En una cosa, los árboles se parecen al resto de las
estructuras que hemos visto: dado un nodo cualquiera de la estructura, podemos
considerarlo como una estructura independiente. Es decir, un nodo cualquiera
puede ser considerado como la raíz de un árbol completo.
Existen otros conceptos que definen las características del
árbol, en relación a su tamaño:
- Orden: es el número potencial de hijos que puede tener cada elemento de árbol. De este modo, diremos que un árbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres será de orden tres, etc.
- Grado: el número de hijos que tiene el elemento con más hijos dentro del árbol. En el árbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con más de tres hijos.
- Nivel: se define para cada elemento del árbol como la distancia a la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos uno. Así sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3.
- Altura: la altura de un árbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un árbol puede considerarse a su vez como la raíz de un árbol, también podemos hablar de altura de ramas. El árbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc.
Los árboles de orden dos son bastante especiales, estos árboles se conocen también como árboles
binarios.
MÉTODOS DE RECORRIDO DE UN ÁRBOL:
ü PREORDEN: (RAÍZ,
IZQUIERDO, DERECHO).
Para recorrer un árbol binario no vacío en preorden, hay
que realizar las siguientes operaciones recursivamente en cada nodo, comenzando
con el nodo de raíz:
Visite la raíz
Atraviese el sub-árbol izquierdo
Atraviese el sub-árbol derecho
ü INORDEN:
(IZQUIERDO, RAÍZ, DERECHO).
Para recorrer un árbol binario no vacío en inorden
(simétrico), hay que realizar las siguientes operaciones recursivamente en cada
nodo:
Atraviese el sub-árbol izquierdo
Visite la raíz
Atraviese el sub-árbol derecho
ü POSTORDEN: (IZQUIERDO,
DERECHO, RAÍZ).
Para recorrer un
árbol binario No vacío en postorden, hay que realizar las siguientes
operaciones recursivamente en cada nodo:
Atraviese el sub-árbol izquierdo
Atraviese el sub-árbol derecho
Visite la raíz
En general, la diferencia entre preorden, inorden y
postorden es cuándo se recorre la raíz. En los tres, se recorre primero el
sub-árbol izquierdo y luego el derecho.
En preorden, la raíz se recorre antes que los recorridos de
los subárboles izquierdo y derecho, en inorden, la raíz se recorre entre los recorridos de los
árboles izquierdo y derecho, y en postorden, la raíz se recorre después de los recorridos
por el subárbol izquierdo y el derecho.
Preorden (antes), inorden (en medio), postorden (después).


No hay comentarios:
Publicar un comentario