Implementación de algoritmos de árboles binarios con memoria dinámica Luis Raúl Changoluisa Masapanta Angel Santiago Rivera Toapanta José Rubén Caiza-Caizabuano Universidad de las Fuerzas Armadas, Ecuador A1. Luis Changoluisa, lrchangoluisa@espe.edu.ec A2. Ángel Rivera, asrivera3@espe.edu.ec Resumen Los arboles binarios se les conoce como una estructura de datos basada en datos no lineales a la vs que es un conjunto finito en el cual está dividido en tres subconjuntos que se les conoce como: Raíz del árbol, subárbol izquierdo y subárbol derecho Un árbol es una colección de elementos llamados nodos, uno de los cuales se distinguen como raíz a través de una relación parentesco que determina una estructura jerárquica sobre los nodos. Un nodo, igual que un elemento de una lista, puede ser el tipo que desee. Implementation of binary tree algorithms with dynamic memory Abstrac Binary trees are known as a data structure based on non-linear data vs which is a finite set in which it is divided into three subsets which are known as: Tree root, left sub-tree and right sub-tree. A tree is a collection of elements called nodes, one of which is distinguished as a root through a kinship relationship that determines a hierarchical structure over the nodes. A node, just like an element in a list, can be any type you want. 1. Introducción Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la derecha, estableciéndose de esta forma un orden en el posicionamiento de los mismos. Todas las definiciones básicas que se dieron para árboles generales permanecen inalteradas sin más que hacer las particularizaciones correspondientes. En los árboles binarios hay que tener en cuenta el orden izqda-drcha de los hijos. Por ejemplo: los árboles binarios a) y b) de la figura 1(adoptamos el convenio de que los hijos a la izquierda son extraídos extendiéndonos hacia la izquierda y los hijos a la derecha a la derecha) son diferentes, puesto que difieren en el nodo 5. El árbol c por convenio se supone igual al b) y no al a). 2. Materiales y Métodos C++ Es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y le agrega la capacidad de abstraer tipos como en Smalltalk. Memoria dinámica se refiere a aquella memoria que no puede ser definida ya que no se conoce o no se tiene idea del número de la variable a considerarse, la solución a este problema es la memoria dinámica que permite solicitar memoria en tiempo de ejecución, por lo que cuanta más memoria se necesite, más se solicita al sistema operativo. El sistema operativo maneja la memoria gracias al uso de punteros, por la misma naturaleza del proceso nos impide conocer el tamaño de la memoria necesaria en el momento de compilar.(Aguilar) Algoritmo Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problemas.(Aguilar) Implementación “Es la ejecución u/o puesta en marcha de una idea programada, ya sea, de una aplicación informática, un plan, modelo científico, diseño especifico, estándar, algoritmo o política.” (S.Pressman) Arboles binarios Es una estructura de datos en la cual cada nodo puede tener 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 . (S.Pressman)