Exemplo n.º 1
0
        public void Exercicio()
        {
            Console.Clear();

            String sequencia = ("123456"); // Define a sequência

            Console.Write("Sequência A: ");
            Pilha pilha = new Pilha(6);

            pilha.push(sequencia[0]);       // Adiciona 1 à pilha
            pilha.push(sequencia[1]);       // Adiciona 2 à pilha
            pilha.push(sequencia[2]);       // Adiciona 3 à pilha

            Console.Write(pilha.pop());     // Retira 3 da pilha
            Console.Write(pilha.pop());     // Retira 2 da pilha

            pilha.push(sequencia[3]);       // Adiciona 4 à pilha
            pilha.push(sequencia[4]);       // Adiciona 5 à pilha

            Console.Write(pilha.pop());     // Retira 5 da pilha

            pilha.push(sequencia[5]);       // Adiciona 6 à pilha

            Console.Write(pilha.pop());     // Retira 6 da pilha
            Console.Write(pilha.pop());     // Retira 4 da pilha
            Console.WriteLine(pilha.pop()); // Retira 1 da pilha


            Console.Write("Sequência B: ");
            Fila fila = new Fila(6);

            for (int i = 0; i < 6; i++)
            {
                fila.push(sequencia[i]); // Adiciona toda a sequência à fila
            }

            Console.Write(fila.pop());            // Retira 1 da fila

            pilha.push(sequencia[0]);             // Adiciona 1 à pilha
            pilha.push(sequencia[1]);             // Adiciona 2 à pilha
            pilha.push(sequencia[2]);             // Adiciona 3 à pilha
            pilha.push(sequencia[3]);             // Adiciona 4 à pilha
            pilha.push(sequencia[4]);             // Adiciona 5 à pilha

            Console.Write(pilha.pop());           // Retira 5 da pilha
            Console.Write(pilha.pop());           // Retira 4 da pilha

            pilha.push(sequencia[5]);             // Adiciona 6 à pilha

            Console.Write(pilha.pop());           // Retira 6 da pilha
            Console.Write(fila.pop());            // Retira 2 da fila
            Console.WriteLine(fila.pop() + "\n"); // Retira 3 da fila
        }
Exemplo n.º 2
0
        public void Exercicio()
        {
            Console.Clear();

            String sequenciaBase, sequenciaFinal, comando;

            Console.Write("Sequência Base: ");
            sequenciaBase = Console.ReadLine();
            Console.Write("Sequência Final: ");
            sequenciaFinal = Console.ReadLine();
            Console.Write("Sequência de Comandos: ");
            comando = Console.ReadLine();

            int aux = 0, sequenciaBasePosicao = 0, sequenciaNovaPosicao = 0;

            char[] sequenciaNovaChar = new char[sequenciaFinal.Length];
            Pilha  pilha             = new Pilha(comando.Length);

            while (aux < comando.Length)
            {
                if (comando[aux].Equals('I') || comando[aux].Equals('i'))
                {
                    pilha.push(sequenciaBase[sequenciaBasePosicao]);
                    sequenciaBasePosicao++;
                }
                else if (comando[aux].Equals('R') || comando[aux].Equals('r'))
                {
                    sequenciaNovaChar[sequenciaNovaPosicao] = pilha.pop();
                    sequenciaNovaPosicao++;
                }
                else
                {
                    Console.WriteLine("Comando inválido. Insira somente I ou R.\n");
                    return;
                }
                aux++;
            }

            String sequenciaNova = new String(sequenciaNovaChar);

            if (sequenciaNova == sequenciaFinal)
            {
                Console.WriteLine("\nO resultado dos comandos é igual à sequência final.\n");
            }
            else
            {
                Console.WriteLine("\nO resultado dos comandos não é igual à sequência final.\n");
            }
        }
Exemplo n.º 3
0
        public void Exercicio()
        {
            Console.Clear();

            Console.Write("Insira uma frase: ");
            String frase = Console.ReadLine(); // Lê a frase

            Pilha p   = new Pilha(frase.Length);
            Fila  f   = new Fila(frase.Length);
            int   aux = 0;

            foreach (char c in frase)
            {
                if (c.Equals(' ') || c.Equals(',') || c.Equals('.') || c.Equals(':') || c.Equals('-'))
                {
                }
                else
                {
                    p.push(c);
                    f.push(c);
                    // Envia à fila e pilha somente letras do alfabeto
                }
            }

            char[] pilhaC = new char[frase.Length];
            char[] filaC  = new char[frase.Length];

            while (!p.isEmpty() && !f.isEmpty())
            {
                pilhaC[aux] = p.pop();
                filaC[aux]  = f.pop();
                aux++;
                // Retorna as frases em ordem normal e invertida
            }

            String novaFrase          = new String(filaC);
            String novaFraseInvertida = new String(pilhaC);

            // Compara as duas frases
            if (novaFrase == novaFraseInvertida)
            {
                Console.WriteLine("É um palíndromo\n");
            }
            else
            {
                Console.WriteLine("Não é um palíndromo\n");
            }
        }