Download Tema: Aplicación de Árboles en C

Document related concepts

Árbol binario wikipedia , lookup

Recorrido de árboles wikipedia , lookup

Árbol binario de búsqueda wikipedia , lookup

Transcript
Programación IV. Guía 9
1
Facultad:
Ingeniería
Escuela:
Computación
Asignatura: Programación IV
Tema: Aplicación de Árboles en C#.
Objetivos Específicos
•
Definir el concepto de la estructura de datos Árbol.
•
Implementar distintos programas de aplicación de la estructura de datos Árbol en C #.
Materiales y Equipo
• Guía Número 9.
• Computadora con programa Microsoft Visual C#.
Introducción Teórica
Un árbol binario es una estructura de datos útil cuando se trata de hacer modelos de procesos
en donde se requiere tomar decisiones en uno de dos sentidos en cada parte del proceso.
Búsquedas.
Un árbol binario de búsqueda, es un árbol binario con la propiedad de que todos los elementos
almacenados en el subárbol izquierdo de cualquier nodo “x” son menores que el elemento
almacenado en “x”, y todos los elementos almacenados en el subárbol derecho de “x” son
mayores que el elemento almacenado en “x”.
Ordenamiento.
Para ordenar los elementos de un arreglo en sentido ascendente, se debe construir un árbol
similar al árbol binario de búsqueda, pero sin omitir las coincidencias. Se basa en ir
construyendo poco a poco el árbol binario introduciendo cada uno de los elementos, los cuales
quedarán ya ordenados. Después, se obtiene la lista de los elementos ordenados recorriendo el
árbol en forma “inorden”.
2 Programación IV. Guía 9
Procedimiento
Ejemplo 1. Retomando el código realizado en la Guía anterior (Guía No.8), agregar los
métodos para implementar los tres tipos de recorrido de un árbol binario: inorden, preorden y
postorden.
Agregar el siguiente código:
// Método de recorrido en Pre-Orden
static void RecorridoPreorden(NodoT Raiz)
{
if (Raiz != null)
{
Console.Write("{0}, ", Raiz.Informacion);
RecorridoPreorden(Raiz.NodoIzquierdo);
RecorridoPreorden(Raiz.NodoDerecho);
}
}
// Método de recorrido en In-Orden
static void RecorridoInorden(NodoT Raiz)
{
if (Raiz != null)
{
RecorridoPostorden(Raiz.NodoIzquierdo);
Console.Write("{0}, ", Raiz.Informacion);
RecorridoPostorden(Raiz.NodoDerecho);
}
}
// Método de recorrido en Post-Orden
static void RecorridoPostorden(NodoT Raiz)
{
if (Raiz != null)
{
RecorridoPostorden(Raiz.NodoIzquierdo);
RecorridoPostorden(Raiz.NodoDerecho);
Console.Write("{0}, ", Raiz.Informacion);
}
}
Hacer la comprobación del código anterior en interfaz gráfica de formulario (Windows Forms).
Programación IV. Guía 9
3
Análisis de resultados
Resolver los ejercicios propuestos en interfaz gráfica de formulario (Windows Forms).
Ejercicio 1.
Se dispone de un árbol binario de elementos de tipo entero.
Escribir un programa que calcule a través de un menú:
a) la suma de los elementos.
b) la suma de los elementos que son múltiplos de 2, de 3 y de 5.
Ejercicio 2.
Escribir un programa que determine si dos árboles binarios son iguales.
Debe mostrarse como salida los dos árboles comparados y la indicación si son o no iguales y
porqué.
Investigación Complementaria
Para la siguiente semana:
Implementar en interfaz gráfica de formulario (Windows Forms), el ejercicio propuesto.
Dado un árbol binario de búsqueda construir su árbol espejo.
Árbol espejo es el que se construye a partir de uno dado, convirtiendo el subárbol izquierdo en
subárbol derecho y viceversa.
La aplicación debe mostrar como salida el árbol original y el árbol espejo.
4 Programación IV. Guía 9
Hoja de cotejo:
Guía 9: Aplicación de Árboles en C#.
Alumno:
Máquina No:
Docente:
GL:
9
Fecha:
EVALUACIÓN
%
CONOCIMIENTO
Del 20
al 30%
APLICACIÓN
DEL
CONOCIMIENTO
Del 40%
al 60%
ACTITUD
Del 15%
al 30%
TOTAL
100%
1-4
5-7
8-10
Conocimiento
deficiente
de los
fundamentos
teóricos
Conocimiento
y explicación
incompleta de
los
fundamentos
teóricos
Conocimiento
completo y
explicación
clara de los
fundamentos
teóricos
No tiene
actitud
proactiva.
Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la guía.
Tiene actitud
proactiva y
sus propuestas
son concretas.
Nota