private Error err;           //Clase error

        //Evalua la expesión
        public double evaluar(string cadenaExp)
        {
            err = new Error();
            double resultado;

            cima = 0;
            try
            {//Quito los espacios en blanco
                exp      = Regex.Replace(cadenaExp, @"\s", "");
                pilaChar = new PilaLineal();
                int i = 0;
                //inserto a la lista enlazada por medio de {PilaLineal}
                do
                {
                    Char c;
                    c = exp[i++];
                    pilaChar.insertar(c);
                } while (i <= exp.Length - 1);
                GetToken();
                // analiza y evalua la expresion
                resultado = evaluaSumaResta();
            }
            catch (System.Exception err)
            {
                throw new System.Exception("La pila esta vacia, no se puede sacar" + err.Message);
            }
            return(resultado);
        }
Esempio n. 2
0
        static void ejemploPilaLineal()
        {
            PilaLineal pila;
            int        x;
            int        CLAVE = -1;

            Console.WriteLine("Ingrese numeros y para terminar -1");
            try
            {
                pila = new PilaLineal();
                do
                {
                    x = Convert.ToInt32(Console.ReadLine());
                    if (x != -1)
                    {
                        pila.insertar(x);
                    }
                } while (x != CLAVE);
                Console.WriteLine("estos son los elementos de la pila");

                while (!pila.pilaVacia())
                {
                    x = (int)(pila.quitar());
                    Console.WriteLine($"Elemento: {x}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error " + e);
            }
        }
Esempio n. 3
0
        //Homework 9
        static void LinealQueueExample()
        {
            PilaLineal pila = new PilaLineal();
            int        x;
            int        Clave = -1;

            Console.WriteLine("Ingrese un numero y para terminar -1");
            try
            {
                do
                {
                    x = Convert.ToInt32(Console.ReadLine());
                    pila.insertar(x);
                } while (x != Clave);

                Console.WriteLine("Estos son los elementos");

                while (!pila.pilaVacia())
                {
                    x = (int)(pila.quitar());
                    Console.WriteLine($"elemento:{x}");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine("Error = " + error.Message);
            }
            Console.ReadLine();
        }
Esempio n. 4
0
        static void ejemploPilaLineal()
        {
            PilaLineal pila;
            int        x;
            int        clave = -1;

            Console.WriteLine("Ingrese numeros y para terminar -1");

            try {
                pila = new PilaLineal();

                do
                {
                    x = Convert.ToInt32(Console.ReadLine());
                    if (x != -1)
                    {
                        pila.insertar(x);
                    }
                } while (x != clave);

                Console.WriteLine("Estos son los elementos de la Pila");

                //para desapilar

                while (!pila.pilaVacia())
                {
                    x = (int)(pila.quitar());
                    Console.WriteLine($"elemento:{x}");
                }
            }
            catch (Exception error) {
                Console.WriteLine("Error= " + error.Message);
            }
        }
        static void palindromo()
        {
            PilaLineal      pilaChar;
            bool            esPalindromo;
            String          pal;
            PilaListaSimple listaEnla = new PilaListaSimple();

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

                //PARTE MODIFICADA
                string remplazada       = Regex.Replace(pal, @"\s", "");
                string convertida       = remplazada.ToLower();
                Regex  reg              = new Regex("[^a-zA-Z0-9]");
                string textoNormalizado = convertida.Normalize(NormalizationForm.FormD);
                string textoSA          = reg.Replace(textoNormalizado, "");// texto sin acento
                //

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

                Console.WriteLine("ORDEN INVERSO: ");
                listaEnla.inverso();
                //comprueba si es palindromo
                esPalindromo = true;

                int pausa;
                pausa = 0;

                for (int j = 0; esPalindromo && !listaEnla.ListaVacia();)
                {
                    Char c;
                    c            = (Char)listaEnla.eliminarPal();
                    esPalindromo = textoSA[j++] == c; //evalua si la pos es igual
                }
                listaEnla.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}");
            }
        }
Esempio n. 6
0
        public static void CapicuaStack()
        {
            bool   capicua;
            string numero;

            //mandando a llamar la clase de pila lineal para usar stack
            PilaLineal   pila         = new PilaLineal();
            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++)
                    {
                        //se cambio el tipo de dato char a int
                        int c;
                        c = numero[i];
                        circula_Cola.insertar(c);
                        pila.insertar(c);
                    }

                    //se retira de la cola y pila para comparar
                    do
                    {
                        //igual que aca se cambio char por int
                        int d;
                        d       = (int)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();
        }
Esempio n. 7
0
        static void palindromo()
        {
            PilaLineal      pilaChar;
            bool            esPalindromo;
            String          pal;
            PilaListaSimple listaEnla = new PilaListaSimple();



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

                //creamos la pila con los chars


                string reemplazada      = System.Text.RegularExpressions.Regex.Replace(pal, @"\s", "");
                string convertida       = reemplazada.ToLower();
                Regex  reg              = new Regex("[^a-zA-Z0-9]");//método
                string textonoramlizado = convertida.Normalize(NormalizationForm.FormD);
                string textoSA          = reg.Replace(textonoramlizado, "");



                for (int i = 0; i < textoSA.Length;)
                {
                    Char c;
                    c = textoSA[i++];//textoSA variable que evaluara si es polindromo o no
                    listaEnla.insertar(c);
                    //pilaChar.IsWhiteSpace(c);
                }
                //comprueba si es palindromo
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    Char c;
                    c            = (Char)pilaChar.quitarChar();
                    esPalindromo = pal[j++] == c; //evalua si la pos es igual
                }
                pilaChar.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}");
            }
        }
Esempio n. 8
0
        static void palindromo()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;

            String pal;
            string espacio = "";

            try
            {
                pilaChar = new PilaLineal();
                Console.WriteLine("\tTeclee una palabra para ver si es PALINDROMO ");
                pal = Console.ReadLine();
                pal.ToLower();

                int len = pal.Length;
                for (int i = 0; i <= len - 1; i++)
                {
                    if (pal[i] != ' ')
                    {
                        espacio = espacio.ToLower() + pal.ToLower()[i];
                        espacio = Regex.Replace(espacio.Normalize(NormalizationForm.FormD), @"[^a-zA-z0-9 ]+", "");
                    }
                }


                //creamos la pila con los chars
                for (int i = 0; i < espacio.Length;)
                {
                    Char c;
                    c = espacio[i++];
                    pilaChar.insertar(c);
                }
                //comprueba si es palindromo
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    Char c;
                    c            = (Char)pilaChar.quitarChar();
                    esPalindromo = espacio[j++] == c; //evalua si la pos es igual
                }
                pilaChar.limpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine($"La palabra {espacio} es palindromo");
                }
                else
                {
                    Console.WriteLine($"Nel, no es PALINDROMO");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"ups error {error.Message}");
            }
        }
Esempio n. 9
0
        static void palindrome_Queue()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;
            string     pal;

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


                pal = pal.ToLower().Replace(" ", String.Empty); //Elimina los espacios
                Console.WriteLine("Sin espacios: " + pal);
                //aca se eliminan las tildes
                pal = DeleteSpecialCharacters(pal);
                Console.WriteLine("Sin Tildes: " + pal);//Eliminamos Tildes



                //creamos la pila con los chars
                for (int i = 0; i < pal.Length;)
                {
                    char c;
                    c = pal[i++];
                    pilaChar.insertar(c);
                }
                //Comprueba si es palindrome
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    char c;
                    c            = (char)pilaChar.quitarChar();
                    esPalindromo = pal[j++] == c; //Evalua igualdad
                }

                pilaChar.limpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine("La palabra es palindromo");
                }
                else
                {
                    Console.WriteLine($"Nel, no es");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"upss error {error.Message}");
            }
        }
Esempio n. 10
0
        //PALINDROMO

        //PILA LINEAL
        // eliminamos caracteres especiales
        //pasa quitar las tildes
        static void palindromo()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;
            string     pal;

            try
            {
                pilaChar = new PilaLineal();
                Console.WriteLine("Ingrese una palabra para someterla a evaluacion");
                pal = Console.ReadLine();


                pal = pal.ToLower().Replace(" ", String.Empty); //permite eliminar todos los espacios entre las palabras
                Console.WriteLine("Sin espacios: " + pal);
                //aca se eliminan las tildes
                pal = eliminarCaracteresEspeciales(pal);
                Console.WriteLine("Sin Tildes: " + pal);//muestra resuldado sin tildes


                //creamos la pila chars
                for (int i = 0; i < pal.Length;)
                {
                    char c;
                    c = pal[i++];
                    pilaChar.insertar(c);
                }
                //verifica si es palindromo o no
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    char c;
                    c            = (char)pilaChar.quitarChar();
                    esPalindromo = pal[j++] == c; //Evalua igualdad
                }

                pilaChar.limpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine("La palabra es palindromo");
                }
                else
                {
                    Console.WriteLine("La palabra no es palindromo");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"tenemos error {error.Message}");
            }
        }//1
Esempio n. 11
0
        static void palindromo()
        {
            Tildes     text = new Tildes();
            PilaLineal pilachar;
            bool       esPalindromo;
            String     palabra, palabra1;

            try
            {
                pilachar = new PilaLineal();
                Console.WriteLine("Teclee una palabra para verificar si es palindromo");
                palabra = Console.ReadLine();

                palabra1 = text.quitarTildes(palabra);
                //elimina los espacios en blanco de la cadena
                //creamos la pilac con los datos char
                for (int i = 0; i < palabra1.Length; i++)
                {
                    char c;
                    c = palabra1[i++];
                    pilachar.insertar(c);
                }

                //comprueba si es palindromo
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilachar.pilaVacia(); j++)
                {
                    Char c;
                    c            = (Char)pilachar.quitarChar();
                    esPalindromo = (palabra1[j++] == c);
                }
                pilachar.LimpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine($"La palabra {palabra} es palindromo");
                }
                else
                {
                    Console.WriteLine($"La palabra {palabra} no es palindromo");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }
        }
Esempio n. 12
0
        static void Palindrome_LinkList()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;
            String     pal;

            try
            {
                pilaChar = new PilaLineal();
                Console.WriteLine("Teclee una palabra para ser ver si es palíndromo: ");
                pal = Console.ReadLine();
                string sinTilde = DeleteSpecialCharacters(pal);


                sinTilde = sinTilde.Replace(" ", "").ToLower();
                Console.WriteLine("Nueva cadena de texto sin espacios : " + sinTilde);
                for (int i = 0; i < sinTilde.Length;)
                {
                    //Insertamos el caracter, agarrando letra por letra
                    char c;
                    c = sinTilde[i++];
                    pilaChar.insertar(c);
                }
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    char c;
                    //Extraer uno a uno
                    c = (char)pilaChar.quitarChar();
                    //Console.WriteLine("Valor c: " + c);
                    esPalindromo = sinTilde[j++] == c; //Evalúa si la pos es igual
                }
                if (esPalindromo)
                {
                    Console.WriteLine($"La palabra {sinTilde} es palindromo");
                }
                else
                {
                    Console.WriteLine($"NEl no ees");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"error{error.Message}");
            }
        }
Esempio n. 13
0
        public void palindromo()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;

            try
            {
                pilaChar = new PilaLineal();
                Console.WriteLine("Teclee una palabra: ");
                String pal = "";
                //Quito los espacios y las letras con tilde
                pal = Regex.Replace(Console.ReadLine().Normalize(NormalizationForm.FormD), @"[^a-zA-z0-9]+", "")
                      + Regex.Replace(pal, @"\s", "").ToLower();

                for (int i = 0; i < pal.Length;)
                {
                    Char c;
                    c = pal[i++];
                    if (c != ' ')
                    {
                        pilaChar.insertar(c);
                    }
                }
                esPalindromo = true;
                for (int j = pal.Length - 1; esPalindromo && !pilaChar.pilaVacia();)
                {
                    char c;
                    c            = (char)pilaChar.quitarChar();
                    esPalindromo = pal[j--] == c;
                }
                pilaChar.limpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine($"la palabra {pal} es palindromo");
                }
                else
                {
                    Console.WriteLine("Nel no es");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine($"Upss error {error.Message}");
            }
        }
Esempio n. 14
0
        public void polindromoArray()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;
            String     pal;

            try
            {
                pilaChar = new PilaLineal();
                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}");
            }
        }
Esempio n. 15
0
        static void pilindromo()
        {
            PilaLineal pilaChar;
            bool       esPalindromo;
            String     pal;

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

                //creamos la pila con los chars
                for (int i = 0; i < pal.Length;)
                {
                    Char c;
                    c = pal[i++];
                    pilaChar.insertar(c);
                }
                //comprueba si es palindromo
                esPalindromo = true;
                for (int j = 0; esPalindromo && !pilaChar.pilaVacia();)
                {
                    Char c;
                    c            = (Char)pilaChar.quitarChar();
                    esPalindromo = pal[j++] == c; //evalua si la pos es igual
                }
                pilaChar.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}");
            }
        }
Esempio n. 16
0
        static void listaInversa()
        {
            int        dato;
            String     datos = "";
            PilaLineal pila;
            int        CLAVE = -1;

            Console.WriteLine("****|Ingrese numeros, y para terminar -1: \n");
            try
            {
                pila = new PilaLineal();
                do
                {
                    dato = Convert.ToInt32(Console.ReadLine());
                    if (dato != CLAVE)
                    {
                        pila.insertar(dato);
                    }
                } while (dato != CLAVE);
                Console.WriteLine("****|Estos son los elementos de la pila a la inversa: \n");

                while (!pila.pilaVacia())
                {
                    datos += pila.quitar() + ",";
                }
                int i = datos.Split(",").Length - 2;
                do
                {
                    String c;
                    c = datos.Split(",")[i--];
                    if (c != " ")
                    {
                        Console.WriteLine($"****|Elemento: {c}");
                    }
                } while (i >= 0);
            }
            catch (Exception err)
            {
                Console.WriteLine($"Error = {err.Message}");
            }
        }
Esempio n. 17
0
        static void ejemploPilaLineal()
        {
            PilaLineal pila;
            int        x;
            int        clave = -1;

            Console.WriteLine("Ingrese numeros, y para terminar -1");
            try
            {
                pila = new PilaLineal();
                do
                {
                    x = Convert.ToInt32(Console.ReadLine());
                    if (x != -1)
                    {
                        pila.insertar(x);
                    }
                } while (x != clave);
            }
            catch (Exception error)
            {
                Console.WriteLine("Error = " + error.Message);
            }
        }
Esempio n. 18
0
        //TAREA De EXPRESIONES
        public static void ejercicioExpresiones()
        {
            PilaLineal pilaExp;
            String     cadena;
            Boolean    eval;

            try
            {
                pilaExp = new PilaLineal();
                Console.WriteLine("Ingresa su expresion");
                cadena = Console.ReadLine();

                for (int i = 0; i < cadena.Length;)
                {
                    Char c;
                    c    = cadena[i];
                    eval = true;

                    if (cadena[i] == '(' || cadena[i] == '[' || cadena[i] == '{')
                    {
                        pilaExp.insertar(cadena[i]);
                    }
                    else
                    {
                        if (cadena[i] == ')')
                        {
                            c = (Char)pilaExp.quitarChar();

                            if (c != '(')
                            {
                                eval = false;
                            }
                        }
                        else
                        {
                            if (cadena[i] == ']')
                            {
                                c = (Char)pilaExp.quitarChar();
                                if (c != '[')
                                {
                                    eval = false;
                                }
                            }
                            else
                            {
                                if (cadena[i] == '}')
                                {
                                    c = (Char)pilaExp.quitarChar();
                                    if (c != '{')
                                    {
                                        eval = false;
                                    }
                                }
                            }
                        }
                    }
                }
                eval = true;
                for (int j = 0; eval && !pilaExp.pilaVacia();)
                {
                    Char c;
                    c    = (Char)pilaExp.quitarChar();;
                    eval = cadena[j++] == c;
                }
                pilaExp.limpiarPila();
                if (eval)
                {
                    Console.WriteLine("Espresion correcta :)" + cadena);
                }
                else
                {
                    Console.WriteLine("Expresion Incorrecta :(");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine("Error = " + error);
            }
        }