コード例 #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
        }
コード例 #2
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");
            }
        }