Baixe o app para aproveitar ainda mais
Prévia do material em texto
CURSO: Análise e desenvolvimento de sistemas POLO DE APOIO PRESENCIAL: Higienópolis SEMESTRE: 3° semestre COMPONENTE CURRICULAR / TEMA: Estrutura de Dados NOME COMPLETO DO ALUNO: Flavio Morales TIA: 22504907 NOME DO PROFESSOR: Thiago Donizetti dos Santos import java.util.LinkedList; class Fila<T> { private LinkedList<T> lista = new LinkedList<>(); public void enfileirar(T elemento) { lista.add(elemento); } public T desenfileirar() { if (estaVazia()) { throw new IllegalStateException("A fila está vazia."); } return lista.removeFirst(); } public boolean estaVazia() { return lista.isEmpty(); } public T primeiro() { if (estaVazia()) { throw new IllegalStateException("A fila está vazia."); } return lista.getFirst(); } public int tamanho() { return lista.size(); } } class Pilha<T> { private LinkedList<T> lista = new LinkedList<>(); public void empilhar(T elemento) { lista.addFirst(elemento); } public T desempilhar() { if (estaVazia()) { throw new IllegalStateException("A pilha está vazia."); } return lista.removeFirst(); } public boolean estaVazia() { return lista.isEmpty(); } public T topo() { if (estaVazia()) { throw new IllegalStateException("A pilha está vazia."); } return lista.getFirst(); } public int tamanho() { return lista.size(); } } public class InverterFila { public static void main(String[] args) { Fila<String> fila = new Fila<>(); fila.enfileirar("Alice"); fila.enfileirar("Bob"); fila.enfileirar("Charlie"); fila.enfileirar("David"); fila.enfileirar("Eve"); System.out.println("Primeiro elemento da fila antes da inversão: " + fila.primeiro()); inverterFila(fila); System.out.println("Primeiro elemento da fila após a inversão: " + fila.primeiro()); } public static void inverterFila(Fila<String> fila) { Pilha<String> pilha = new Pilha<>(); while (!fila.estaVazia()) { pilha.empilhar(fila.desenfileirar()); } while (!pilha.estaVazia()) { fila.enfileirar(pilha.desempilhar()); } } }
Compartilhar