static void PostOrden(Arbol temp) { // Se comprueba que el arbol esté inicializado para recorrer if (temp != null) { // Se recorre el subarbol izquierdo y el derecho if (temp.ramaIzq != null) { PostOrden(temp.ramaIzq); } if (temp.ramaDer != null) { PostOrden(temp.ramaDer); } // Impresión de la raiz del arbol o subarbol a imprimir Console.Write($"{ temp.dato } | "); } else { Console.Write("El Arbol Binario está vacio..."); } }
static void InsertarArbol() { try { bool capturando = true; while (capturando) { Console.Clear(); Console.Write("Ingresa el nombre del familiar: "); x = Console.ReadLine(); Insertar(); re = raiz; Console.Write("\n\n[1] Si\n[! Otro] No\n¿Desea Insertar otro nombre?: "); capturando = Console.ReadLine().Contains("1"); } } catch (Exception) { Console.WriteLine("Solo se Pueden Ingresar nombres de personas, intente de nuevo..."); } }
static void Main(string [] args) { // Mojica Vidal Jonathan Jafet // 19211688 raiz = null; // Declaración del menu bool operando = true; while (operando) { // Se prepara la consola Console.Clear(); Console.Title = "Menu de recorridos con arboles"; // Despliegue de opciones Console.Write("[1] Insertar nombres\n[2] Recorrer en PreOrden\n[3] Recorrer en InOrden\n[4] Recorren en PostOrden\n[! Otro] Salir\nSelecciona una opción: "); switch (Console.ReadLine()) { case "1": // Se nombra la consola Console.Title = "Insertando nombres en el Arbol"; InsertarArbol(); break; case "2": // Se prepara la consola Console.Title = "Mostrando el arbol en PreOrden"; Console.Clear(); // Despliegue por PreOrden re = raiz; PreOrden(re); // Notificación de despliegue terminado Console.Write("\nRecorrido Completado..."); Console.ReadKey(); break; case "3": // Se prepara la consola Console.Title = "Mostrando el arbol en InOrden"; Console.Clear(); // Despliegue por InOrden re = raiz; InOrden(re); // Notificación de despliegue terminado Console.Write("\nRecorrido Completado..."); Console.ReadKey(); break; case "4": // Se prepara la consola Console.Title = "Mostrando el arbol en PostOrden"; Console.Clear(); // Despliegue por PostOrden re = raiz; PostOrden(re); // Notificación de despliegue terminado Console.Write("\nRecorrido Completado..."); Console.ReadKey(); break; default: operando = false; break; } } }