Ir al contenido principal

Conceptos Básicos de Arbol,Altura,Nivel,Grado.

Autor: Nicolas Hurtado
  

    Un árbol como estructura de datos es un conjunto jerárquico no-vacío de datos, llamados nodos. Posee un elemento designado como la raíz del árbol, mientras que el resto de los elementos son divididos en subconjuntos no-vacíos, cada uno de estos subconjuntos es un sub-árbol de la raíz (Descendiente de esta), esto se conoce como estructura recursiva. Los árboles pueden ser de distintos tipos, siendo los árboles binarios el tipo principal en uso. Los árboles binarios pueden tener uno o dos hijos (o ninguno) y son la base de la implementación del algoritmo de búsqueda binaria. También son usados para la representación de fórmulas matemáticas, utilizados en sistemas de datos y en circuitos eléctricos.





    Los árboles también son definidos como estructuras no-lineales basados en la teoría de grafos, representando una de las estructuras de datos más importantes. En los siempre existe una ruta única del nodo raíz a todos los demás nodos del árbol y todos los nodos, excepto la raíz, tienen una sola línea de entrada. En el caso de los árboles binarios, estos se consideran árboles ordenados de grado 2. En los árboles ordenados, el orden de los nodos siempre sigue un orden específico, por ejemplo, en el caso de los árboles binarios de búsqueda, este orden se basa en su valor. El valor del nodo izquierdo siempre es menor al del padre y el valor del nodo derecho siempre es mayor al del padre.


Los árboles poseen diferentes propiedades de gran utilidad, como son: 

Profundidad: La distancia entre un nodo y la raíz. 

Altura: La distancia entre la raíz y el nodo más lejano (El camino más largo) 

Nivel: Corresponde a la ubicación vertical de los descendientes de cada nodo. El nodo raíz está en el nivel 0. Sus descendientes están en el nivel 1, los descendientes de estos en el nivel 2 y así sucesivamente. 

Grado: Es la cantidad máxima de descendientes directos (Hijos) que posee cada sub-árbol.




Comentarios

Entradas populares de este blog

Tipos de Arboles (Binarios y HEAP)

Autor: Jesús Villasana    Arboles Binarios     Un árbol binario es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener más de dos hijos (de ahí el nombre “binario”). Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno.     Como estructura de datos este sirve para organizar datos para facilitar su manipulación, ya sea el ingreso, borrado o búsqueda de datos, y precisamente una de las principales ventajas de los árboles binarios es la búsqueda, ya que como en muchos algoritmos de búsqueda necesitamos tener la información ordenada y en nuestros árboles binarios precisamente los datos van ingresando de forma ordenada. Recorridos con los conocidos métodos recursivos: Inorden Postorden Preorden Montículo o HEAP   Un montículo (heap) es una ...

Algoritmos INSERTAR y HEAPIFY

Autor: Victor Acosta Inserción     Cuando se llega a un árbol vacío se crea el nodo en el puntero que se pasa como parámetro por referencia, de esta manera los nuevos enlaces mantienen la coherencia. Si el elemento a insertar ya existe entonces no se hace nada. void insertar(tarbol **a, int elem) {   if (*a == NULL) {     *a = (arbol *) malloc(sizeof(arbol));     (*a)->clave = elem;     (*a)->izq = (*a)->der = NULL;   }   else if ((*a)->clave < elem) insertar(&(*a)->der, elem);   else if ((*a)->clave > elem) insertar(&(*a)->izq, elem); }     Para insertar un nuevo elemento se sitúa al final del vector (última hoja del árbol) y se asciende hasta que cumpla la propiedad. Algoritmo Heapify     Llamada recursiva a Heapify para sus  sub-árboles, si no cumplen con la propiedad del heap