Programación III, Guía 6 1 Facultad : Ingeniería Escuela : Computación Asignatura: Programación III Tema: “ÁRBOLES BINARIOS”. Objetivos .* Implemente la estructura de datos arboles utilizando C#. NET. .* Conozca los recorridos más comunes en los árboles. Introducción En ciencias de la computación, un árbol binario es una estructura de datos en la cualcada 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. Terminología: Nodo: Cada elemento en un árbol. Nodo Raíz: Primer elemento agregado al árbol. 2 Programación III, Guía 6 Nodo Padre: Se le llama así al nodo predecesor de un elemento. Nodo Hijo: Es el nodo sucesor de un elemento. Nodo Hermano: Nodos que tienen el mismo nodo padre Nodo Hoja: Aquel nodo que no tiene hijos. Programación III, Guía 6 3 Subárbol: Todos los nodos descendientes por la izquierda o derecha de un nodo. Altura y Niveles: La altura es la cantidad de niveles. 4 Programación III, Guía 6 Recorrido del árbol: Recorrer el árbol significa que cada nodo sea procesado una vez en una secuencia determinada. Existen dos enfoques generales: Recorrido en Profundidad: El proceso exigen alcanzar las profundidades de un camino desde la raíz hacia el descendiente más lejano del primer hijo, antes de proseguir con el segundo. Recorrido en Anchura: El proceso se realiza horizontalmente desde la raíz a todos sus hijos antes de pasar con la descendencia de algunos de ellos. Algoritmos: Recorrido PreOrden(RID) void preOrden(ArbolBinario raíz) { if(raiz) { visitar(raiz–>dato); preOrden(raiz–>izq); preOrden(raiz–>der); Programación III, Guía 6 } } El recorrido en PreOrden del árbol es el siguiente: 15, 6, 4, 10, 20, 17, 22 Recorrido EnOrden (IRD) void enOrden(ArbolBinario raíz) { if(raiz) { enOrden(raiz–>izq); visitar(raiz–>dato); enOrden(raiz–>der); } } 5 Programación III, Guía 6 6 MATERIAL Y EQUIPO Nº Cantidad Descripción 1 1 Guía de Programación #6, Programación III 2 1 Dispositivo de memoria Programación III, Guía 6 PROCEDIMIENTO 7 8 Programación III, Guía 6 Programación III, Guía 6 9 1 0 Programación III, Guía 6 Programación III, Guía 6 1 1 1 2 Programación III, Guía 6 Análisis de resultados. Crear un método al ejercicio anterior, que realice el recorrido en INORDEN Investigación complementaria. • Como determinar la altura del árbol. • Como determinar la profundidad de un nodo • Como determinar el número de nodos en cualquier momento. NOTA: Todo esto aplicarlo al ejercicio de la práctica. Bibliografía • DEITEL, HARVEY M. / DEITEL, PAUL J. Cómo programar en C#. Editorial Pearson Prentice Hall, México 2004. http://www.ucema.edu.ar/~rst/Algoritmos_y_Estructura_de_Datos/Teoria/5._Arboles_binar ios.pdf