Пример #1
0
        static void InsertarArbol()
        {
            try {
                bool capturando = true;
                while (capturando)
                {
                    Console.Clear();
                    Console.Write("Ingresa el nombre de la ciudad a visitar: ");
                    x = Console.ReadLine();

                    Insertar();

                    re = raiz;

                    Console.Write("\n\n[1] Si\n[! Otro] No\n¿Desea Insertar otra ciudad?: ");
                    capturando = Console.ReadLine().Contains("1");
                }
            }
            catch (Exception) {
                Console.WriteLine("Solo se Pueden Ingresar nombre de ciudades, intente de nuevo...");
            }
        }
Пример #2
0
        static void InOrden(Arbol temp)
        {
            if (temp != null)
            {
                if (temp.ramaIzq != null)
                {
                    InOrden(temp.ramaIzq);
                }

                Console.WriteLine(temp.dato);
                Console.ReadKey();

                if (temp.ramaDer != null)
                {
                    InOrden(temp.ramaDer);
                }
            }
            else
            {
                Console.Write("El Arbol Binario está vacio...");
            }
        }
Пример #3
0
        static void EliminarNodo()
        {
            Arbol p, q, v, s, te;
            bool  encontrado = false;

            p = raiz;
            q = null;

            if (p != null)
            {
                Console.Write("Nodo a eliminar: ");
                x = Console.ReadLine();
                while (p != null && !encontrado)
                {
                    if (p.dato == x)
                    {
                        encontrado = true;
                        Console.Write($"El nodo { p.dato } será eliminado...");
                    }
                    else
                    {
                        if (string.Compare(x, p.dato) >= 0)
                        {
                            p = p.ramaDer;
                        }
                        else
                        {
                            p = p.ramaIzq;
                        }
                    }
                    if (encontrado)
                    {
                        if (p.ramaIzq == null)
                        {
                            v = p.ramaDer;
                        }
                        else
                        {
                            if (p.ramaDer == null)
                            {
                                v = p.ramaIzq;
                            }
                            else
                            {
                                te = p;
                                v  = p.ramaDer;
                                s  = v.ramaIzq;
                                while (s != null)
                                {
                                    te = v;
                                    v  = s;
                                    s  = v.ramaIzq;
                                }
                                if (te != p)
                                {
                                    te.ramaIzq = v.ramaDer;
                                    v.ramaDer  = p.ramaDer;
                                }
                            }
                            v.ramaIzq = p.ramaIzq;
                        }
                        if (q == null)
                        {
                            raiz = v;
                        }
                        else
                        {
                            q.ramaDer = v;
                        }
                    }
                    else
                    {
                        Console.Write($"La ciudad { x } no está en el árbol...");
                    }
                }
            }
            else
            {
                Console.Write("El Arbol Binario está vacio...");
            }
            Console.ReadKey();
        }
Пример #4
0
        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 operaciones con arbol V2.0";
                // Despliegue de opciones
                Console.Write("[1] Insertar ciudades\n[2] Recorrer en InOrden las ciudades\n[3] Buscar un ciudad\n[4] Eliminar una ciudad\n[! Otro] Salir\nSelecciona una opción: ");

                switch (Console.ReadLine())
                {
                case "1":
                    // Se nombra la consola
                    Console.Title = "Insertando ciudades en el Arbol";
                    InsertarArbol();
                    goto case "2";

                case "2":
                    Console.Title = "Mostrando el arbol en InOrden";
                    Console.Clear();

                    re = raiz;
                    InOrden(re);
                    break;

                case "3":
                    Console.Title = "Busqueda de una ciudad a visitar";
                    Console.Clear();

                    Console.Write("Nombre de la ciudad a buscar: ");
                    x = Console.ReadLine();

                    re = raiz;
                    Busqueda(re);
                    Console.ReadKey();
                    Console.Write("\n\n[1] Si\n[! Otro] No\n¿Desea Buscar otra ciudad?: ");
                    if (Console.ReadLine().Contains("1"))
                    {
                        goto case "3";
                    }
                    else
                    {
                        break;
                    }

                case "4":
                    Console.Title = "Eliminar ciudades visitadas";
                    Console.Clear();

                    EliminarNodo();
                    Console.Write("\n\n[1] Si\n[! Otro] No\n¿Desea Buscar otra ciudad?: ");
                    if (Console.ReadLine().Contains("1"))
                    {
                        goto case "4";
                    }
                    goto case "2";

                default:
                    operando = false;
                    break;
                }
            }
        }