コード例 #1
0
        //****************EJERCICIOS DE PILA *******************

        //Ejercicios de Pila Lineal usando arreglos
        static void EjemploPilaLineal_Arreglos()
        {
            Arreglo_PilaLineal pila;
            int x;
            int CLAVE = -1;

            Console.WriteLine("Ingrese números, y para terminar -1");

            try
            {
                pila = new Arreglo_PilaLineal();

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

                Console.WriteLine("Estos son los elemtos de la pila");

                //Desapila
                while (!pila.pilaVacia())
                {
                    x = (int)(pila.quitar());
                    Console.WriteLine($"elemento:{x}");
                }
            }
            catch (Exception error)
            {
                Console.WriteLine("Error" + error.Message);
            }
        }
コード例 #2
0
        //Evaluación de Expresiones Matemáticas
        static void Expresiones_Matematicas()
        {
            Arreglo_PilaLineal miPila = new Arreglo_PilaLineal();
            int    n = 0;
            int    r = 0;
            int    a = 0;
            int    b = 0;
            Object x;
            char   caracter = ' ';

            Console.WriteLine("Ingrese la expresión matemática en PREFIX");
            String expresion = Console.ReadLine();

            for (n = expresion.Length - 1; n >= 0; n--)
            {
                caracter = expresion[n];

                if (caracter >= '0' && caracter <= '9')
                {
                    miPila.insertar(Convert.ToInt32(caracter.ToString()));
                }
                else
                {
                    a = (int)miPila.quitar();
                    b = (int)miPila.quitar();

                    if (caracter == '+')
                    {
                        r = a + b;
                        miPila.insertar(r);
                    }
                    if (caracter == '-')
                    {
                        r = a - b;
                        miPila.insertar(r);
                    }
                    if (caracter == '/')
                    {
                        r = a / b;
                        miPila.insertar(r);
                    }
                    if (caracter == '*')
                    {
                        r = a * b;
                        miPila.insertar(r);
                    }
                }
            }

            //Despliega la pila y muestra el resultado de la expresión
            Console.WriteLine("Este es el resultado de la expresión: ");
            //Desapila
            while (!miPila.pilaVacia())
            {
                x = miPila.quitar();
                Console.WriteLine($"elemento:{x}");
            }
        }
コード例 #3
0
        //********************Ejercicios Palindromo***********************
        //Ejercicio de Palíndromo usando Arreglos
        static void Palindromo_Arreglos()
        {
            Arreglo_PilaLineal pilaChar;
            bool   esPalindromo;
            String pal;

            try
            {
                pilaChar = new Arreglo_PilaLineal();
                Console.WriteLine("Teclee una palabra para ver si es palindromo");
                pal = Console.ReadLine();
                String sinTilde = Regex.Replace(pal.Normalize(System.Text.NormalizationForm.FormD), @"[^a-zA-z0-0]+", "");
                sinTilde = sinTilde.Replace(" ", "");
                Console.WriteLine("Palabra sin tildes : " + sinTilde);
                Console.WriteLine("Nueva cadena de texto sin espacios : " + sinTilde);

                //Creamos la pila con los chars
                for (int i = 0; i < sinTilde.Length;)
                {
                    //Insertamos el caracter, agarrando letra por letra
                    char c;
                    c = sinTilde[i++];
                    pilaChar.insertar(c);
                }

                //Comprueba si es palindromo
                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
                    // Console.WriteLine("Sin Tilde: " + sinTilde);
                }
                pilaChar.LimpiarPila();
                if (esPalindromo)
                {
                    Console.WriteLine($"La palabra {sinTilde} es palindromo");
                }
                else
                {
                    Console.WriteLine($"NEl no ees");
                }

                //Prueba :
            }
            catch (Exception error)
            {
                Console.WriteLine($"error{error.Message}");
            }
        }