Ir al contenido principal

El Arbol Binario

por William Read
El árbol binario es una estructura de datos formada por un conjunto de nodos. Existe un nodo raíz que es el origen de la estructura de datos.


Cada nodo lleva la información utilitaria deseada; además, contiene dos vínculos -generalmente llamados izquierdo y derecho- que conectan el nodo por la izquierda a otro nodo, por la derecha a otro nodo distinto. Estas conexiones sirven para ordenar los nodos según algún criterio de mayor que y/o menor que. Uno y hasta ambos vínculos pueden no estar conectados, quedan en el limbo, y entonces su valor es nil.

Los lenguajes de programación modernos (c++, pascal, etc.) permiten modelar estructuras de árbol binario fácilmente. El manejo de los árboles binarios puede hacerse usando funciones muy sencillas, pero difíciles de entender al principio. Se trata de las llamadas funciones recursivas; éstas se llaman a si mismas tantas veces como sea necesario, hasta alcanzar la meta propuesta.

Un árbol binario bien diseñado debe ser simétrico. En el nivel cero está solamente la raiz, en el nivel 1 hay 2 nodos, en el 2do nivel hay 4 nodos, en el 3ro se tienen 8 y así sucesivamente. Si asignásemos un nodo a cada habitante del planeta, necesitaríamos un árbol de unos 26 niveles, solamente.

La principal utilidad del árbol binario está en los llamados árboles de búsqueda. Asignando un número de identificación a cada habitante del caso anterior, ordenados en un árbol binario simétrico, podríamos encontrar el número correspondiente a un habitante en particular entrando por la raíz y preguntando si el número buscado es menor o mayor que el de la raíz. Si es menor nos dirigimos al nodo izquierdo y repetimos la misma pregunta, si es mayor vamos al nodo de la derecha, y así hasta encontrar la entrada buscada. Máximo 25 veces tendríamos que preguntar para encontrar la ficha identificadora de cualquier habitante.

En computación se usa poco el árbol binario porque las funciones recursivas que logran la búsqueda con tanta eficiencia, usan el mecanismo de la pila ó "stack" que pudiera causar desbordes en la memoria interna de los computadores. Por eso se prefiere la búsqueda iterativa, aunque ésta sea mas lenta. Cuando las listas de búsqueda son muy grandes y entonces valdría la pena usar almacenamientos en estructura de árbol binario, entonces hay que asegurarse de que el árbol creado resulte lo mas balanceado posible, para que la pila no tenga que visitar muchos niveles.

Iterando para encontrar un habitante de los últimos en una lista lineal habría que preguntar unos seis mil millones de veces. Recurriendo en un árbol binario balanceado solamente tendríamos que preguntar 25 veces -con mala suerte-. Si la raiz del árbol es 1 y todas las hojas izquierdas están vacías (=nil), el nivel del árbol sería seis mil millones y ninguna computadora actual tiene una pila así, lo que resultaría es un desborde de pila.

En computación hay un adagio que reza: "Iterar es humano, recurrir es divino".

Comentarios

Entradas populares de este blog

14.La Medicina en Santo Domingo hace 100 Años, Parte XIV

Notas autobioráficas del Dr. Héctor Read Regreso a la República Dominicana Estaba preparando mi viaje de regreso, desde que recibí mi diploma de Doctor en Medicina de la Universidad de Hamburgo el 6 de agosto de 1930 -la fecha del título-. Uno de mis pasos previos fué el asegurarme el pasaje en un barco de la “Línea Horn”, que era la Linea que mensualmente, aunque sin fecha, hacía la travesía hasta los puertos dominicanos, desde Hamburgo. Recordando siempre que mi viaje en 1925 se había facilitado en virtud de una combinación con el médico de abordo del “Therese Horn” de entonces, se me ocurrió escribir a la Compañía Naviera de Horn directamente. Les escribí recordando el hecho y dándole otra vez las gracias por su pasado apoyo. Ahora les ofrecía, sin recompensa alguna, mis servicios como médico del barco de su Línea que me desembarcara en la República Dominicana, a donde quería regresar, terminados ya mis estudios de especialización en Alemania. La respuesta fué, que ponían a ...

Blasones Antiguos de La Hispaniola

por William Read La información de este artículo está tomada en gran parte del libro "Blasones de La Española" de Emilio Rodríguez Demorizi. Las ilustraciones se tomaron del libro "Banderas y Escudos Dominicanos" de Ramiro Matos González y son los expuestos en el Museo de las Casas Reales en Santo Domingo. En el año 1508, los concejos, regidores, caballeros, oficiales y hombres buenos de La Española se dirigieron a la metrópoli por medio de sus procuradores, Diego de Manresa y el Bachiller Antonio Serrano, en solicitud de armas nobiliarias para cada una de la Villas de la Isla, a lo que accedió el Rey por Privilegio Real del 7 de diciembre de 1508. Además de la Isla, que también recibió sus armas, las villas blasonadas fueron las siguientes, citadas en el mismo orden del Privilegio Real. A la isla "La Española", que desde entonces (1508) se llamó Santo Domingo, le fueron señaladas por armas: un escudo de gules con una banda blanca atravesada con d...

Haití, ¿Un País Fallido?

por William Read Quienes visitan Haití y la República Dominicana se sorprenden de las diferencias abismáticas que existen entre los dos países, el primero con mas de 200 años de existencia y el segundo con unos 160 años de fundado. Leyendo la serie de 10 artículos de este blog titulados "Cómo Nacieron Haití y la República Dominicana", se pueden ya derivar conclusiones orientadoras respecto a las actitudes y posiciones equivocadas de los gobernantes del primer país. Veamos: Los 113 años siguientes al descubrimiento de América sólo existía La Española, hasta entonces una e indivisible. Entonces, el Monarca español, Felipe III de la Casa de Austria, nieto de Luis XIV de Francia, ordenó al Gobernador Antonio De Osorio por Cédula Real de 1603, despoblar la zona noroeste de La Española. El pretexto era " eliminar el contrabando y la introducción de Biblias Luteranas que traían los contrabandistas de cueros que venían en embarcaciones de otros países europeos".  L...