Example #1
0
    static void Main(string[] args)
    {
        ListaDE lista = new ListaDE();

        ControladorPrincipal.Menu(lista);
        Console.Clear();
    }
    public static void MP_T3_SHIFT(ListaDE lista)
    {
        int datoExtraido = lista.Shift();

        Console.WriteLine("Dato extraído: {0}", datoExtraido);
        Thread.Sleep(1500);
    }
    // MENUS Y CAPTURA DE TECLAS
    //----------------------------------------------
    public static void Menu(ListaDE lista)
    {
        ConsoleKeyInfo tecla;

        do
        {
            Vista.MenuInsertar(lista);
            tecla = Console.ReadKey(true);

            switch (tecla.Key.ToString())
            {
            case "D1":
                MI_T1_ORDENADO(lista);
                break;

            case "D2":
                MI_T2_FRENTE(lista);
                break;

            case "D3":
                MI_T3_ATRAS(lista);
                break;
            }
        } while (tecla.Key != ConsoleKey.Escape);
    }
    public static void MP_T2_POP(ListaDE lista)
    {
        int datoExtraido = lista.Pop();

        Console.WriteLine("Dato extraído: {0}", datoExtraido);
        Thread.Sleep(1500);
    }
    public static void MP_T5_BORRAR(ListaDE lista)
    {
        bool leido = true;

        Console.Write("¿Qué index quieres borrar? ");
        int  index   = Helpers.LeerNumero(ref leido);
        bool seBorro = leido? lista.Borrar(index) : false;

        Console.WriteLine("¿Dato en index {0} borrado?: {1}",
                          index, seBorro? "ÉXITO :)" : "FRACASO!!");
        Thread.Sleep(1500);
    }
    public static void MP_TC_OBTENER(ListaDE lista)
    {
        bool leido = true;

        Console.Write("Dame el índice del dato a obtener: ");
        int index = Helpers.LeerNumero(ref leido);
        int dato  = lista.EnIndex(index);

        if (leido)
        {
            Console.WriteLine("Se encontró {0} en el índice {1}!",
                              dato, index);
        }
        Thread.Sleep(1500);
    }
    // MANEJO DE ACCIÓN POR TECLA PRESIONADA
    //--------------------------------------------------------------
    public static void MP_T1_PUSH(ListaDE lista)
    {
        bool leido = true;

        Console.Write("Dame dato para empujar: ");
        int dato = Helpers.LeerNumero(ref leido);

        if (leido)
        {
            lista.Push(dato);
        }
        if (!leido)
        {
            Thread.Sleep(1500);
        }
    }
    public static void MP_TB_BUSCAR(ListaDE lista)
    {
        bool leido = true;

        Console.Write("Dato que quieres buscar: ");
        int dato  = Helpers.LeerNumero(ref leido);
        int idxAt = lista.Buscar(dato);

        if (leido)
        {
            Console.WriteLine("El dato {0} {1}",
                              dato, (idxAt < 0)? "no fue encontrado" :
                              "se encuentra en el índice " + idxAt);
        }
        Thread.Sleep(1500);
    }
    public static void MP_T4_UNSHIFT(ListaDE lista)
    {
        bool leido = true;

        Console.Write("Dame dato para encolar: ");
        int dato = Helpers.LeerNumero(ref leido);

        if (leido)
        {
            lista.Unshift(dato);
        }
        if (!leido)
        {
            Thread.Sleep(1500);
        }
    }
    public static void MI_T3_ATRAS(ListaDE lista)
    {
        bool leido_a = true, leido_b = true;

        Console.Write("¿Detrás de qué índice vas a insertar? ");
        int index = Helpers.LeerNumero(ref leido_a);

        Console.Write("Dame el dato a insertar: ");
        int  dato  = Helpers.LeerNumero(ref leido_b);
        bool exito = (leido_a && leido_b)?
                     lista.InsDetrasDe(index, dato) : false;

        Console.WriteLine("Inserción del dato {0} atrás del índice {1} {2}",
                          dato, index, exito? "EXITOSA!" : "FRACASÓ!!");
        Thread.Sleep(1500);
    }
Example #11
0
    public static void MenuInsertar(ListaDE lista)
    {
        Console.Clear();

        Console.WriteLine("REPRESENTACIÓN VISUAL");
        Console.WriteLine("---------------------\n");
        lista.Mostrar();
        Console.WriteLine("\nPresione cualquiera de las siguientes teclas o");
        Console.WriteLine("la tecla [ESC] para volver al menú principal:\n");

        Console.WriteLine(".---.     .---.     .---.");
        Console.WriteLine("| 1 |     | 2 |     | 3 |");
        Console.WriteLine("'==='     '==='     '==='");
        Console.WriteLine("Insertar  Insertar  Insertar");
        Console.WriteLine("Ordenado  Frente a  Detrás de\n");
    }
    // MANEJO DE ACCIÓN POR TECLA PRESIONADA
    //--------------------------------------------------------------------
    public static void MI_T1_ORDENADO(ListaDE lista)
    {
        bool leido = true;

        Console.Write("¿Qué dato quieres insertar? ");
        int dato = Helpers.LeerNumero(ref leido);

        if (leido)
        {
            lista.InsEnSuLugar(dato);
        }
        if (!leido)
        {
            Thread.Sleep(1500);
        }
    }
    public static void MP_T0_SWAP(ListaDE lista)
    {
        bool leido_a = true, leido_b = true;

        Console.Write("Índice (a) para intercambiar: ");
        int index_a = Helpers.LeerNumero(ref leido_a);

        Console.Write("Índice (b) para intercambiar: ");
        int index_b = Helpers.LeerNumero(ref leido_b);

        bool swapped = (leido_a && leido_b)?
                       lista.Swap(index_a, index_b) : false;

        Console.WriteLine("Intercambio entre índices {0} y {1} {2}!!",
                          index_a, index_b, swapped? "EXITOSO" : "FRACASÓ");
        Thread.Sleep(1500);
    }
    public static void MP_TA_EDITAR(ListaDE lista)
    {
        bool leido_a = true, leido_b = true;

        Console.Write("Índice a reemplazar: ");
        int index = Helpers.LeerNumero(ref leido_a);

        Console.Write("Dato nuevo en índice {0}: ", index);
        int dato = Helpers.LeerNumero(ref leido_b);

        bool reemplazado = (leido_a && leido_b)?
                           lista.Reemplazar(index, dato) : false;

        Console.WriteLine("Reemplazo {0}",
                          reemplazado? "EXITOSO!" : "FRACASÓ!!");
        Thread.Sleep(1500);
    }
Example #15
0
    public static void MenuPrincipal(ListaDE lista)
    {
        Console.Clear();

        Console.WriteLine("REPRESENTACIÓN VISUAL");
        Console.WriteLine("---------------------\n");
        lista.Mostrar();
        Console.WriteLine("\nPresione cualquiera de las siguientes teclas o");
        Console.WriteLine("presione la tecla [ESC] para salir del programa:\n");

        Console.WriteLine(".---.  .---.  .---.  .---.    .---.   .---.    .---.");
        Console.WriteLine("| 1 |  | 2 |  | 3 |  | 4 |    | 5 |   | 6 |    | 7 |");
        Console.WriteLine("'==='  '==='  '==='  '==='    '==='   '==='    '==='");
        Console.WriteLine("Push   Pop    Shift  Unshift  Borrar  Limpiar  Insertar\n");

        Console.WriteLine(".---.    .---.    .---.  .---.   .---.   .---.");
        Console.WriteLine("| 8 |    | 9 |    | 0 |  | A |   | B |   | C |");
        Console.WriteLine("'==='    '==='    '==='  '==='   '==='   '==='");
        Console.WriteLine("Ordenar  Reversa  Swap   Editar  Buscar  Obtener\n");
    }
    // MENUS Y CAPTURA DE TECLAS
    //----------------------------------------------
    public static void Menu(ListaDE lista)
    {
        ConsoleKeyInfo tecla;

        do
        {
            Vista.MenuPrincipal(lista);
            tecla = Console.ReadKey(true);

            switch (tecla.Key.ToString())
            {
            case "D1":
                MP_T1_PUSH(lista);
                break;

            case "D2":
                MP_T2_POP(lista);
                break;

            case "D3":
                MP_T3_SHIFT(lista);
                break;

            case "D4":
                MP_T4_UNSHIFT(lista);
                break;

            case "D5":
                MP_T5_BORRAR(lista);
                break;

            case "D6":
                lista.Limpiar();
                break;

            case "D7":
                ControladorInsertar.Menu(lista);
                break;

            case "D8":
                lista.Ordenar();
                break;

            case "D9":
                lista.Reversa();
                break;

            case "D0":
                MP_T0_SWAP(lista);
                break;

            case "A":
                MP_TA_EDITAR(lista);
                break;

            case "B":
                MP_TB_BUSCAR(lista);
                break;

            case "C":
                MP_TC_OBTENER(lista);
                break;
            }
        } while (tecla.Key != ConsoleKey.Escape);
    }
Example #17
0
 public int Buscar(int dato)
 {
     return(ListaDE.Buscar(dato, raiz));
 }