Beispiel #1
0
        public string conviertePostfija(string expresion)
        {
            StringBuilder salida = new StringBuilder();
            PilaLista     lista  = new PilaLista();
            string        token  = string.Empty;
            Tipo          tipo   = Tipo.invalido;

            for (int i = 0; i < expresion.Length; i++)
            {
                token = expresion[i].ToString();

                tipo = GetTipo(token);

                if (tipo == Tipo.operando)
                {
                    salida.Append(token);
                }
                else
                {
                    ApilarOperador(salida, lista, token);
                }
            }
            VaciarOperandos(salida, lista);
            return(salida.ToString());
        }
        static void EjemploPilaLista()
        {
            int             x;
            PilaListaSimple listaEnla;

            listaEnla = new PilaListaSimple();
            PilaLista pl = new PilaLista();

            listaEnla.Agregar(1);
            listaEnla.Agregar(5);
            listaEnla.Agregar(16);
            listaEnla.Agregar(217);
            listaEnla.Agregar(41);
            listaEnla.Agregar(19);

            //var xx = listaEnla.eliminar();
            //var xx = pl.quitar();

            //while (!listaEnla.ListaVacia())
            //{
            //    x = (int)(listaEnla.eliminar());
            //    Console.WriteLine($"Elemento:{x}");
            //}

            Console.WriteLine("ORDEN INVERSO: ");
            listaEnla.inverso();

            int pausa;

            pausa = 0;
        }
Beispiel #3
0
        static void NumbersList()
        {
            PilaLista PilaL;
            int       x;
            int       CLAVE = -1;

            Console.WriteLine("Ingrese numeros, y para terminar -1");
            try
            {
                PilaL = new PilaLista();
                do
                {
                    x = Convert.ToInt32(Console.ReadLine());
                    if (x != -1)
                    {
                        PilaL.insertar(x);
                    }
                } while (x != CLAVE);

                Console.WriteLine("ESTOS SON LOS ELEMENTOS DE LA PILA:");


                while (!PilaL.pilaVacia())
                {
                    x = (int)(PilaL.quitar());
                    Console.WriteLine($"elemento:{x}");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine("Error= " + error.Message);
            }
        }
        static void EnClase()
        {
            bool          capicua;
            string        numero;
            PilaLista     pila = new PilaLista();
            Cola_Circular cola = new Cola_Circular();

            try
            {
                capicua = false;
                while (!capicua)
                {
                    do
                    {
                        Console.WriteLine("INGRESE 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];
                        cola.insertar(c);
                        pila.insertar(c);
                    }
                    int pausa = 0;

                    //se retira de la cola

                    do
                    {
                        Char d;
                        d = (char)cola.quitar();
                        //capicua = d.Equals(cola.quitar());
                        capicua = d.Equals(pila.quitar()); //compara igualdad
                    } while (capicua && !cola.Cola_Vacia() /*&& !pila.PilaVacia()*/);

                    if (capicua)
                    {
                        Console.WriteLine($"Numero {numero} es capicua0");
                    }
                    else
                    {
                        Console.WriteLine("el numero no es Capicua");
                    }


                    //vaciar estrucutras

                    cola.BorrarCola();
                    //pila.limpiar();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("error" + e);
            }
        }
Beispiel #5
0
 private void ApilarOperador(StringBuilder salida, PilaLista operadores, string token)
 {
     salida.Append(" ");
     if (operadores.lista().Count > 0)
     {
         DesapilaOperando(token, operadores, salida);
     }
     operadores.insertar(token);
 }
        static void capicuaPilaListayColaCircular()
        {
            bool   capicua;
            string numero;

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

            try
            {
                capicua = false;
                while (!capicua)
                {
                    do
                    {
                        Console.WriteLine("\nTeclea 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 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($"njmero {numero} no es capicua");
                        Console.WriteLine("intente otro");
                    }

                    // vaciar estructuras

                    circula_Cola.borrarCola();
                    pila.limpiarPila();
                }
            }
            catch (Exception errores)
            {
                Console.WriteLine($"Error en {errores.Message}");
            }
        }
Beispiel #7
0
        static void Capicua_original()
        {
            bool   capicua;
            String numero;

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

            try
            {
                capicua = false;

                while (!capicua)
                {
                    do
                    {
                        Console.WriteLine("Teclea un número");
                        numero = Console.ReadLine();
                    } while (!validar(numero));

                    //Pone en la cola y en la pila cada digito
                    for (int i = 0; i < numero.Length; i++)
                    {
                        char c;
                        c = numero[i];
                        circular_cola.insertar(c);
                        pila.insertarPila(c);
                    }

                    //Desencolar, se retira la cola y pila para comparar
                    do
                    {
                        char d;
                        d       = (Char)circular_cola.quitar();
                        capicua = d.Equals(pila.quitar());//Compara la igualdad
                    } while (capicua && !circular_cola.colaVacia());

                    if (capicua)
                    {
                        Console.WriteLine($"Numero {numero} es capicua");
                    }
                    else
                    {
                        Console.WriteLine($"El numero {numero} no es capicua");
                        Console.WriteLine("Intente otro :)");
                    }

                    circular_cola.borrarCola();
                    pila.LimpiarPila();
                }
            }
            catch (Exception errores)
            {
                Console.WriteLine($"Error en{errores.Message} ");
            }
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            //PROGRAMA CAPICUA
            // programa capicua
            Ejercicio1();
            bool   capicua;
            string numero;

            PilaLista    pila         = new PilaLista();
            ColaCircular circula_Cola = new ColaCircular();
        public static void programa1()
        {
            bool         capicua;
            string       numero;
            PilaLista    Pila         = new PilaLista();
            ColaCircular circula_Cola = new ColaCircular();

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

                    //PONE EN LA COLA Y EN LA PILA CADA DIGITO
                    for (int i = 0; 0 < 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());
                    } while (capicua && !circula_Cola.colaVacia());

                    if (capicua)
                    {
                        Console.WriteLine($"Numero {numero} es capicua");
                    }
                    else
                    {
                        Console.WriteLine($"njmero {numero} no es capicua");
                        Console.WriteLine("intente otro");
                    }
                    // vaciar estructuras

                    circula_Cola.borrarcola();
                    Pila.limpiarPila();
                }
            }
            catch (Exception errores)
            {
                Console.WriteLine($"Error en {errores.Message}");
            }
        }
Beispiel #10
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}");
            }
        }
Beispiel #11
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();
        }
        public static void CapicuaQueue()
        {
            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);
                        qt.Enqueue(c);
                        //pila.insertar(c);
                    }
                    //se retira de la cola y pila para comparar
                    do
                    {
                        Char d;
                        d = (char)qt.Dequeue();
                        //d = (Char)circula_Cola.quitar();
                        //capicua = d.Equals(pila.quitar());
                        capicua = d.Equals(qt.Dequeue()); //compara la igualdad
                    } while (capicua && !IsEmpty());      /*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();
        }
Beispiel #13
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;
        }
Beispiel #14
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;
        }
Beispiel #15
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 + " ");
            }
        }
Beispiel #16
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}");
            }
        }
Beispiel #17
0
        private string convertir(string infija)
        {
            String    posfija = "";
            PilaLista pila    = new PilaLista();

            for (int i = 0; i < infija.Length; i++)
            {
                //obtengo el caracter
                char caracter = infija[i];
                if (operador(caracter))
                {
                    if (pila.pilaVacia())
                    {
                        pila.insertar(caracter);
                    }
                    else
                    {
                        //evuluamos la prioridad
                        if (prieoridadExpresion(caracter) > prieoridadPila((char)pila.cimaPila()))
                        {
                            pila.insertar(caracter);
                        }
                        else
                        {
                            //desapilar
                            posfija += pila.quitar();
                            //apilamos el nuevo operador
                            pila.insertar(caracter);
                        }
                    }
                }
                else
                {
                    posfija += caracter;
                }
            }
            //sacamos todo lo de la pila
            while (!pila.pilaVacia())
            {
                //desapilamos y guardamos todos los datos de la pila en la posfija
                posfija += pila.quitar();
            }
            return(posfija);
        }
Beispiel #18
0
        public void polindromoLista()
        {
            PilaLista pilaChar;
            bool      esPalindromo;
            String    pal;

            try
            {
                pilaChar = new PilaLista();
                Console.WriteLine("Teclee una palabra");
                pal = Console.ReadLine();
                //creamos la pila con los char
                foreach (var letra in pal)
                {
                    Char c;
                    c = letra;
                    pilaChar.insertar(c);
                }

                //comprueba si es palindromo
                esPalindromo = true;
                for (int i = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    Char c;
                    c            = (Char)pilaChar.quitarChar();
                    esPalindromo = pal[i++] == c; // evalua si la sigueinte letra es igual
                }
                pilaChar.limpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine($"La palabra es palindromo");
                }
                else
                {
                    Console.WriteLine($"La palabra no es un palindromo");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"ups error {error.Message}");
            }
        }
Beispiel #19
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());
        }
Beispiel #20
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);
            }
        }
Beispiel #21
0
        static void listaInversa()
        {
            PilaLista invertido = new PilaLista();
            Lista     datos     = new Lista();
            Random    numeros   = new Random();

            for (int i = 1; i <= 10; i++)
            {
                datos.Final(numeros.Next(1, 21));
            }
            datos.mostrarDatos();

            IterarLista listaInversa = new IterarLista(datos);
            Nodo        a;

            a = listaInversa.next();
            while (a != null)
            {
                invertido.insertar(a.getDato());
                a = a.getSiguiente();
            }
            invertido.mostrarDatos();
        }
Beispiel #22
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} ");
            }
        }