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 }
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"); } }
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"); } }