Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad: Ingeniería
Escuela: Computación
Asignatura: Programación 4
Objetivo Especifico
Introduccion Teorica
A. Definición
Un árbol binario es una estructura de datos de tipo árbol en donde cada uno de los nodos del
árbol puede tener 0, 1, ó 2 sub árboles llamados de acuerdo a su caso como:
1. Si el nodo raíz tiene 0 relaciones se llama hoja.
2. Si el nodo raíz tiene 1 relación a la izquierda, el segundo elemento de la relación es el
subárbol izquierdo.
3. Si el nodo raíz tiene 1 relación a la derecha, el segundo elemento de la relación es el
subárbol derecho.
A continuación se hará una breve descripción de los diferentes tipos de árbol binario así como
un ejemplo de cada uno de ellos.
A. B. DISTINTO
Se dice que dos árboles binarios son distintos cuando sus estructuras son
diferentes. Ejemplo:
A A
B
B
A. B. SIMILARES
Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la
información que contienen sus nodos es diferente. Ejemplo:
A A
B D
A. B. EQUIVALENTES
Son aquellos arboles que son similares y que además los nodos contienen la misma
información. Ejemplo:
A A
B B
3 Programación 4, Guía 8
A. B. COMPLETOS
Son aquellos arboles en los que todos sus nodos excepto los del último nivel, tiene dos hijos;
el subárbol izquierdo y el subárbol derecho.
Los nodos del árbol binario serán representados como registros que contendrán como mínimo
tres campos. En un campo se almacenará la información del nodo. Los dos restantes se
utilizarán para apuntar al subárbol izquierdo y derecho del subárbol en cuestión.
Material y Equipo
Procedimiento
Dato = int.Parse(Console.ReadLine());
if (Raiz != null){
EliminarNodo(ref Raiz, Dato);
}
else{
Console.WriteLine("ERROR, Arbol Vacio....");
}
Console.Clear();
break;
case 5:
Finalizar();
break;
default:
Console.WriteLine("ERROR, Opcion Invalida....");
Console.ReadLine();
Console.WriteLine("");
break;
}
} while (Opcion != 5);
}
static int Menu(){
int Resultado = 0;
Console.WriteLine("MENU DE ARBOLES");
Console.WriteLine("");
Console.WriteLine("1.- Registrar un Nuevo Nodo");
Console.WriteLine("2.- Mostrar/Recorrer el Arbol");
Console.WriteLine("3.- Buscar un Nodo");
Console.WriteLine("4.- Eliminar un Nodo");
Console.WriteLine("5.- Finalizar el Programa");
Console.WriteLine("");
Console.Write("Opcion: ");
Resultado = int.Parse(Console.ReadLine());
Console.WriteLine("");
return Resultado;
}
//Insertar en un arbol binario
static void Insertar(NodoT Raiz, int Dato){
if (Dato < Raiz.Informacion){
if (Raiz.NodoIzquierdo == null){
NodoT NuevoNodo = new NodoT();
NuevoNodo.Informacion = Dato;
Raiz.NodoIzquierdo = NuevoNodo;
}
else{//Llamada recursiva
Insertar(Raiz.NodoIzquierdo, Dato);
}
}
else{//Buscar por el lado derecho
if (Dato > Raiz.Informacion){
if (Raiz.NodoDerecho == null){
NodoT NuevoNodo = new NodoT();
NuevoNodo.Informacion = Dato;
Raiz.NodoDerecho = NuevoNodo;
}
else{
//Llamada recursiva por el lado derecho
Insertar(Raiz.NodoDerecho, Dato);
}
}
else{
//El Nodo existe en el Arbol
Console.WriteLine("Nodo Existente, Imposible Insertar...");
Console.ReadLine();
}
}
}
//Metodo de recorrido
Programación 4, Guía 8 6
else{
Raiz.NodoIzquierdo = Auxiliar.NodoIzquierdo;
}
}
}
}
}
}
else{
Console.WriteLine("ERROR, EL Nodo no se Encuentra en el Arbol...");
Console.ReadLine();
}
}
//Metodo de Finalizacion
static void Finalizar(){
Console.WriteLine("Fin del Programa, press any key to continue,...");
Console.ReadLine();
}
}
}
Programación 4, Guía 8 8
Ejercicios
2. Desarrolle una interfaz gráfica para el manejo del arbol binario de búsqueda.
Tarea
• Modificar el código de la guía para el manejo de arboles generales, osea que los nodos
tengan la posibilidad de referenciar a mas de dos nodos hijo:
9 Programación 4, Guía 8
Hoja de cotejo: 8
EVALUACION
APLICACIÓN Del
DEL 40%
CONOCIMIENTO al
60%
ACTITUD
Del No tiene Actitud Tiene actitud
15% actitud propositiva y proactiva y
al proactiva. con sus
30% propuestas no propuestas
aplicables al son
contenido de concretas.
la guía.
TOTAL 100%