Arboles y Redes
Arboles y Redes
Arboles y Redes
1 Árboles
• Desde el punto de vista conceptual, un árbol es un objeto que comienza con una
raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las
cuales puede extenderse en ramificaciones hasta terminar, finalmente en una hoja.
•Los árboles representan las estructuras no-lineales y dinámicas de datos más
importantes en computación. Dinámicas, puesto que la estructura árbol puede
cambiar durante la ejecución de un programa. No lineales, puesto que a cada
elemento del árbol pueden seguirle varios elementos.
Gráficamente puede representarse una estructura árbol de diferentes maneras y todas ellas
equivalentes:
EJEMPLOS
Los árboles además de los nodos tienen otras propiedades importantes que son utilizadas en
diferentes ámbitos los cuales son:
Nivel:
Nos referimos como nivel a cada generación dentro del árbol. Por ejemplo, cuando a un
nodo hoja le agregamos un hijo, el nodo hoja pasa a ser un nodo rama, pero además el árbol
crece una generación por lo que el Árbol tiene un nivel más. Cada generación tiene un
número de Nivel distinto que las demás generaciones.
Notemos que un Árbol con Orden = 1 no tendría sentido ya que sería una estructura lineal.
ya que cada nodo solo podría tener un Hijo.
Grado:
El grado se refiere al número mayor de hijos que tiene alguno de los nodos del Árbol y esta
limitado por el Orden, ya que este indica el número máximo de hijos que puede tener un
nodo.
El grado se calcula contando de forma recursiva el número de hijos de cada sub-árbol hijo y
el número de hijos del nodo actual para tomar el mayor, esta operación se hace de forma
recursiva para recorrer todo el árbol.
Existen escenarios donde podemos sacar un Sub-Árboles del Árbol para procesarlo de forma
separada, de esta forma el Sub-Árboles pasa a ser un Árbol independiente, También
podemos eliminar Sub-Árboles completos, Agregarlos, entre otras operaciones.
6.1.2 Clasificación árbol (Altura, número de nodos)
• Altura:
La altura es calculada mediante recursividad tomando el nivel más grande de los dos sub-árboles de
forma recursiva de la siguiente manera:
•Número De Nodos
Un árbol estrictamente binario con n hojas siempre contiene 2n - 1 nodos. El nivel de un nodo en
árbol binario se define del modo siguiente: la raíz del árbol tiene el nivel 0, el nivel de cualquier
otro nodo en el árbol es uno más que el nivel de su padre.
Si un árbol binario contiene m nodos en el nivel I, contiene cuando mucho 2m nodos en el nivel I
+ 1. Dado que un árbol binario solo contiene un nodo en el nivel 0 (raíz), puede contener un
máximo de 2I nodos en el nivel I. Un árbol binario completo de profundidad d es el árbol que
contiene 2I nodos en el nivel I entre 0 y d. La cantidad total de nodos en un árbol binario
completo de profundidad d, tn es igual a la suma de la cantidad de nodos en cada nivel entre 0
yd.
Los nodos de un árbol binario casi completo se enumeran para que se asigne a la raíz el No.1,
se asigne a un hijo izquierdo 2 veces el número asignado a su padre y se asigne a un hijo
derecho 1 más el doble del No. asignado a su padre. Un árbol estrictamente binario casi
completo con n hojas tiene 2n - 1nodos, como cualquier otro árbol estrictamente binario con n
hojas. Un árbol binario casi completo con n hojas que no es estrictamente binario tiene 2n
nodos.
Solo hay un árbol binario casi completo con n nodos. Este árbol es estrictamente binario si y
solo si n es impar.