/// <summary> /// Menu en caso de todos los datos del arbol sean enteros /// </summary> /// <param name="node">Arbol el cual se va manipular</param> /// <param name="nombre">nombre del arbol para mostrar al usuario</param> static public void MenuMostrar_C2(ref NodoArbol node, string nombre) { bool rep = false; do { Console.Clear(); Console.Title = $"Arbol {nombre}"; Console.WriteLine("1.- Mostrar Datos del Arbol"); Console.WriteLine("2.- Insertar nodo"); Console.WriteLine("3.- Eliminar nodo"); Console.WriteLine("4.- Buscar nodo en el arbol"); Console.WriteLine("5.- Buscar padre"); Console.WriteLine("6.- Recorrido PreOrden"); Console.WriteLine("7.- Recorrido InOrden"); Console.WriteLine("8.- Recorrido PostOrden"); Console.WriteLine("9.- Salir del Menu Actual"); Console.WriteLine("10.- Salir del Programa"); try { switch (int.Parse(Console.ReadLine())) { case 1: Console.Clear(); ABB.Transversa(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 2: var valor = MenuInsercionInt(); node = ABB.Insertar(valor, node); rep = true; break; case 3: Console.WriteLine("Que valor desea eliminar?"); ABB.BorrarNodo(int.Parse(Console.ReadLine()), node); rep = true; break; case 4: Console.Clear(); Console.Write("Valor a buscar: \t"); int valor2 = int.Parse(Console.ReadLine()); if (Recorridos.Resultado_Buscar(node, valor2)) { NodoArbol nodoBuscado = Recorridos.Buscar(node, valor2); string mensaje = $"El elemento {nodoBuscado.Valor} si existe; "; if (nodoBuscado.Izq != null) { mensaje += $"su hijo izquierdo es {nodoBuscado.Izq.Valor}"; } else { mensaje += "su hijo izquierdo es null"; } if (nodoBuscado.Der != null) { mensaje += $", su hijo derecho es {nodoBuscado.Der.Valor}"; } else { mensaje += $", su hijo derecho es null"; } Console.WriteLine(mensaje); } else { Console.WriteLine("El elemento no existe"); } Console.ReadKey(); rep = true; break; case 5: Console.Clear(); Console.Write("Valor a evaluar: \t"); int valor3 = int.Parse(Console.ReadLine()); if (Recorridos.Resultado_Buscar(node, valor3)) { NodoArbol result = ABB.BuscarPadre(valor3, node); if (result == null) { Console.WriteLine($"El valor {valor3} es la raiz"); } else { Console.WriteLine($"El padre de {valor3} es {result.Valor}"); } } else { Console.WriteLine("El elemento no existe"); } Console.ReadKey(); rep = true; break; case 6: Recorridos.PreOrden(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 7: Recorridos.InOrden(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 8: Recorridos.PostOrden(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 9: rep = false; break; case 10: Environment.Exit(0); break; default: Console.WriteLine("Ingrese una opcion valida"); rep = true; break; } } catch (System.FormatException) { Console.WriteLine("Ingrese un valor numerico"); } } while (rep); }
/// <summary> /// Menu para arboles que no contienen datos enteros /// </summary> /// <param name="node">Arbol el cual se va manipular</param> /// <param name="nombre">nombre del arbol para mostrar al usuario</param> static public void MenuMostrar_C1(NodoArbol node, string nombre) { bool rep = false; do { Console.Clear(); Console.Title = $"Arbol {nombre}"; Console.WriteLine("1.- Mostrar Datos del Arbol"); Console.WriteLine("2.- Recorrido PreOrden"); Console.WriteLine("3.- Recorrido InOrden"); Console.WriteLine("4.- Recorrido PostOrden"); Console.WriteLine("5.- Salir del menu actual"); Console.WriteLine("6.- Salir del programa"); try { switch (int.Parse(Console.ReadLine())) { case 1: ABB.Transversa(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 2: Recorridos.PreOrden(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 3: Recorridos.InOrden(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 4: Recorridos.PostOrden(node); System.Threading.Thread.Sleep(2000); rep = true; break; case 5: rep = false; break; case 6: Environment.Exit(0); break; default: Console.WriteLine("Elija una opcion valida"); rep = true; break; } } catch (System.FormatException) { Console.WriteLine("Ingrese un valor numerico"); rep = true; } } while (rep); }