Buscar

Implementação de Lista, Pilha e Fila em Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Atividade 3 Estrutura de Dados 
 
Implemente um projeto no qual serão inseridos números de forma ordenada, e que 
atenda as especificações a seguir: 
 
Passo 1: Insira os números [1, 2, 3, 4 e 5] em uma lista - com 5 células; 
Passo 2: Remova todos os dados da lista e insira-os em uma Pilha - com 5 células. 
Deve-se sempre remover os dados da célula inicial da lista; 
Passo 3: Remova os dados da Pilha e insira-os em uma Fila - com 10 células); 
Passo 4: Insira os números [6, 7, 8, 9 e 10] na lista; 
Passo 5: Repita os passos 2 e 3. 
Passo 6: Exiba todos os números que foram inseridos na fila. 
 
Analise a ordem dos números exibidos e verifique se estão na mesma forma que 
foram inseridos. Se a exibição foi diferente, justifique o ocorrido. 
 
O programa desenvolvido pelo aluno e a sua justificativa deverá ser postado em um 
ambiente virtual. Esse programa será avaliado pelo tutor responsável pela disciplina. 
 
Res: 
 
import 
java.util.*; 
 
public class Main { 
 public static void main(String[] args) { 
 List<Integer> listaNumeros = new ArrayList<>(); 
 Stack<Integer> pilhaNumeros = new Stack<>(); 
 Queue<Integer> filaNumeros = new LinkedList<>(); 
 int i; 
 
 //Inserindo os números [1, 2, 3, 4 e 5] na lista 
 for (i = 1; i <= 5; i++) { 
 listaNumeros.add(i); 
 
 } 
 System.out.println("Número de elementos da lista: " + 
listaNumeros.size()); 
 System.out.println("Seguem os números na lista: "); 
 while(!listaNumeros.isEmpty()){ 
 //Removendo o próximo elemento da lista e dando para 
uma variável temporário 
 
 int elementoLista = listaNumeros.remove(0); 
 //Imprimindo o número da lista na ordem 
 System.out.printf("%d ", elementoLista); 
 //Adicionando o elemento da lista à pilha na ordem 
 pilhaNumeros.push(elementoLista); 
 } 
 
 if (listaNumeros.isEmpty()) { 
 System.out.println("\nYay, minha lista está vazia!"); 
 } else { 
 System.out.println("\nOops, deu algo errado, minha 
lista tinha que estar vazia."); 
 } 
 
 System.out.println("Número de elementos da pilha: " + 
pilhaNumeros.size()); 
 
 System.out.println("Seguem os números na pilha: "); 
 while(!pilhaNumeros.isEmpty()) { 
 //Removendo o elemento da pilha e dando para uma 
variável temporária 
 int elementoPilha = pilhaNumeros.pop(); 
 //Imprimindo o número da pilha na ordem 
 System.out.printf("%d ", elementoPilha); 
 //Adicionando o número da piljha à fila na ordem 
 filaNumeros.add(elementoPilha); 
 } 
 
 if (pilhaNumeros.isEmpty()) { 
 System.out.println("\nYay, minha pilha está vazia!"); 
 } else { 
 System.out.println("\nOops, deu algo errado, minha 
pilha tinha que estar vazia."); 
 } 
 //Verificando o número de elementos na Fila 
 System.out.println("No momento tenho o seguinte número de 
elementos na minha fila: " + filaNumeros.size()); 
 System.out.println("Vamos ver quais são os elementos da 
minha fila e em que ordem estão?"); 
 
 for(Integer numeroFila: filaNumeros){ 
 System.out.printf("%d ", numeroFila); 
 } 
 
 //Repetindo passos 2 e 3 com os números [6, 7, 8, 9 e 10]; 
 //Inserindo os números [6, 7, 8, 9 e 10] na lista 
 
 for (i = 6; i <= 10; i++) { 
 listaNumeros.add(i); 
 
 } 
 System.out.println("\nNúmero de elementos da lista na 
segunda rodada de inserção: " + listaNumeros.size()); 
 System.out.println("Seguem os números na lista na segunda 
rodada: "); 
 while(!listaNumeros.isEmpty()){ 
 //Removendo o próximo elemento da lista e dando para 
uma variável temporário 
 int elementoLista = listaNumeros.remove(0); 
 //Imprimindo o número da lista na ordem 
 System.out.printf("%d ", elementoLista); 
 //Adicionando o elemento da lista à pilha na ordem 
 pilhaNumeros.push(elementoLista); 
 } 
 
 if (listaNumeros.isEmpty()) { 
 System.out.println("\nYay, minha lista está vazia!"); 
 } else { 
 System.out.println("\nOops, deu algo errado, minha 
lista tinha que estar vazia."); 
 } 
 
 System.out.println("Número de elementos da pilha: " + 
pilhaNumeros.size()); 
 System.out.println("Seguem os números na pilha na segunda 
rodada: "); 
 while(!pilhaNumeros.isEmpty()) { 
 //Removendo o elemento da pilha e dando para uma 
variável temporária 
 int elementoPilha = pilhaNumeros.pop(); 
 //Imprimindo o número da pilha na ordem 
 System.out.printf("%d ", elementoPilha); 
 //Adicionando o número da piljha à fila na ordem 
 filaNumeros.add(elementoPilha); 
 } 
 
 if (pilhaNumeros.isEmpty()) { 
 System.out.println("\nYay, minha pilha está vazia!"); 
 } else { 
 System.out.println("\nOops, deu algo errado, minha 
pilha tinha que estar vazia."); 
 } 
 
 
 //Imprimindo tamanho da Fila e os elementos da Fila 
 System.out.println("O tamanho final da minha fila será de: 
" + filaNumeros.size()); 
 System.out.println("Seguem os números na fila em ordem 
depois de todas as inserões: "); 
 for(Integer numeroFila : filaNumeros){ 
 System.out.printf("%d ", numeroFila); 
 } 
 
 } 
} 
Justificativa: 
 
Resp: 
A Lista é ordenada, portanto a ordem em que insiro os elementos será mantida 
ao usar um laço para iterar sobre os elementos. 
Na Pilha temos o conceito LIFO (Last In First Out - Último a entrar, Primeiro a 
Sair), portando as iterações irão seguir esse conceito. 
E na Fila usamos o FIFO (First In First Out - Primeiro a entrar, Primeiro a Sair), o 
que também será respeitado ao iterar sobre está estrutura. 
Na nossa ordem primeiro passa por uma Lista, depois colocamos os elementos 
dessa Lista em ordem em uma Pilha, esvaziando a Lista e depois os colocamos 
em uma Fila, deixado a Pilha vazia.

Outros materiais