Ejemplo n.º 1
0
        public static void Capicua()
        {
            //programa capicua
            bool   capicua;
            string numero;

            PilaLista    pila         = new PilaLista();
            ColaCircular circula_Cola = new ColaCircular();

            try
            {
                capicua = false;
                while (!capicua)
                {
                    do
                    {
                        Console.WriteLine("\n Teclea un numero: ");
                        numero = Console.ReadLine();
                    } while (!valido(numero));

                    //pone en la cola y en la capicua cada digito
                    for (int i = 0; i < numero.Length; i++)
                    {
                        Char c;
                        c = numero[i];
                        circula_Cola.insertar(c);
                        pila.insertar(c);
                    }

                    //se retira de la cola y pila para comparar
                    do
                    {
                        Char d;
                        d       = (Char)circula_Cola.quitar();
                        capicua = d.Equals(pila.quitar()); //compara la igualdad
                    } while (capicua && !circula_Cola.colaVacia());

                    if (capicua)
                    {
                        Console.WriteLine($"Numero {numero} es capicua");
                    }
                    else
                    {
                        Console.WriteLine($"Numero {numero} no es capicua");
                        Console.WriteLine("intente otro");
                    }
                }
            }
            catch (Exception errores)
            {
                Console.WriteLine($"Error en {errores.Message} ");
            }

            Console.ReadKey();
        }
Ejemplo n.º 2
0
        public static void esCapicula_UMG()
        {
            //programa capicua

            bool         capicua;
            string       numero;
            Ejercicios   ejercicios   = new Ejercicios();
            PilaLista    pila         = new PilaLista();
            ColaCircular colaCircular = new ColaCircular();

            try
            {
                capicua = false;
                while (!capicua)
                {
                    do
                    {
                        Console.WriteLine("\nTeclee un numero: ");
                        numero = Console.ReadLine();
                    } while (!ejercicios.valido(numero));
                    //pone en la cola y en la pila cada digito
                    for (int i = 0; i < numero.Length; i++)
                    {
                        char c;
                        c = numero[i];
                        colaCircular.insertar(c);
                        pila.insertar(c);
                    }
                    //se retira de la cola y pila para comparar
                    do
                    {
                        char d;
                        d       = (char)colaCircular.quitar();
                        capicua = d.Equals(pila.quitar());
                    } while (capicua && !colaCircular.colaVacia());
                    if (capicua)
                    {
                        Console.WriteLine($"Numero {numero} es capicua");
                    }
                    else
                    {
                        Console.WriteLine($"Numero {numero} no es capicua");
                        Console.WriteLine("Intente otro");
                    }
                    //vaciar estructuras
                    colaCircular.borrarCola();
                    pila.limpiarPila();
                }
            }
            catch (Exception errores)
            {
                Console.WriteLine($"Eror en {errores.Message}");
            }
        }
Ejemplo n.º 3
0
        static void EjemploPilaLista()
        {
            PilaLista pl = new PilaLista();

            pl.insertar(3);
            pl.insertar(4);
            pl.insertar(8);
            pl.insertar(2);
            pl.insertar(1);

            var xx = pl.quitar();
        }
Ejemplo n.º 4
0
        private double evaluarPosfija(string posfija)
        {
            PilaLista pila = new PilaLista();

            for (int i = 0; i < posfija.Length; i++)
            {
                char caracter = posfija[i];
                if (!operador(caracter))
                {
                    double num = double.Parse(caracter.ToString());
                    pila.insertar(num);
                }
                else
                {
                    double desapilar1 = (double)pila.quitar();
                    double desapilar2 = (double)pila.quitar();
                    double desapilar3 = operar(caracter, desapilar1, desapilar2);
                    pila.insertar(desapilar3);
                }
            }
            return((double)pila.cimaPila());
        }
Ejemplo n.º 5
0
        public void DesapilaOperando(string operador, PilaLista lista, StringBuilder salida)
        {
            int    dato  = prioridad(operador);
            string op    = (string)lista.quitar();
            int    dato2 = prioridad(op);

            while (dato <= dato2)
            {
                salida.Append(op + " ");
                if (lista.lista().Count == 0)
                {
                    break;
                }
                op    = (string)lista.quitar();
                dato2 = prioridad(op);
            }

            if (dato > dato2)
            {
                lista.insertar(op);
            }
        }
Ejemplo n.º 6
0
        static void EjemploPilaLista()
        {
            PilaLista pl = new PilaLista();

            pl.insertar(1);
            pl.insertar(5);
            pl.insertar(16);
            pl.insertar(217);
            pl.insertar(41);
            pl.insertar(19);

            var xx = pl.quitar();
            // int pau;
            // pau = 0;
        }
Ejemplo n.º 7
0
        private void VaciarOperandos(StringBuilder salida, PilaLista operadores)
        {
            salida.Append(" ");

            while (operadores.lista().Count > 0)
            {
                string sop = (string)operadores.quitar();

                if (sop == "(")
                {
                    throw new Exception("Error falta parentesis de cierre )");
                }

                salida.Append(sop + " ");
            }
        }
Ejemplo n.º 8
0
        static void LIFOExample()
        {
            PilaLista pl = new PilaLista();

            pl.insertar(1);
            pl.insertar(5);
            pl.insertar(16);
            pl.insertar(217);
            pl.insertar(41);
            pl.insertar(19);

            var xx = pl.quitar();
            int pau;

            pau = 0;
        }
Ejemplo n.º 9
0
        static void PalindromeStack()
        {
            PilaLista pilaLs;
            bool      esPalindromo;
            String    pal;

            try
            {
                pilaLs = new PilaLista();
                Console.WriteLine("Teclee una palabra para ver si es ");
                pal = Console.ReadLine();

                string remplazada      = Regex.Replace(pal, @"\s", "");
                string convertida      = remplazada.ToLower();
                string textoSinAcentos = DeleteSpecialCharacters(convertida);

                //creamos la pila con los chars
                for (int i = 0; i < textoSinAcentos.Length;)
                {
                    Char c;
                    c = textoSinAcentos[i++];
                    pilaLs.insertar(c);
                }

                //comprueva si es palindromo
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaLs.pilaVacia();)
                {
                    Char c;
                    c            = (Char)pilaLs.quitar();
                    esPalindromo = textoSinAcentos[j++] == c;//evalua si la posicion es igual o no es igual
                }
                pilaLs.limpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine($"La palabra {pal} es palindromo");
                }
                else
                {
                    Console.WriteLine($"Nel, no es ");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"ups error {error.Message}");
            }
        }
Ejemplo n.º 10
0
        static void capicua()
        {
            Queue qt = new Queue();
            //qt.Enqueue("hola");
            //qt.Enqueue("esto");
            //qt.Enqueue("es");
            //qt.Enqueue("una");
            //qt.Enqueue("prueba");

            //Console.WriteLine($"La cola tiene {qt.Count} elementos");
            //Console.WriteLine($"Desencolando {qt.Dequeue()}");

            //programa capicua
            bool         capicua;
            string       numero;
            PilaLista    pila         = new PilaLista();
            ColaCircular circula_Cola = new ColaCircular();



            try
            {
                capicua = false;
                while (!capicua)
                {
                    do
                    {
                        Console.WriteLine("Tecleea un numero: ");
                        numero = Console.ReadLine();
                    } while (!valido(numero));

                    //pone en la cola y en la pila cada digito

                    for (int i = 0; i < numero.Length; i++)
                    {
                        Char c;
                        c = numero[i];
                        circula_Cola.insertar(c);
                        pila.insertar(c);
                    }

                    //se retira de la cola y de la pila comparar
                    do
                    {
                        Char d;
                        d       = (Char)circula_Cola.quitar();
                        capicua = d.Equals(pila.quitar());
                    } while (capicua && !circula_Cola.colaVacia());
                    if (capicua)
                    {
                        Console.WriteLine($"Numero{numero} es Capicua");
                    }
                    else
                    {
                        Console.WriteLine($"El numero {numero} no es capicua");

                        Console.WriteLine("Ingrese otro numero: ");
                    }
                    //vaciar estructuras

                    circula_Cola.borrarCola();
                    pila.limpiarPila();
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"Error en {error.Message} ");
            }
        }