Boa tarde pessoal, queria ajuda em um exercício

package listapilhafila;

import java.util.ArrayDeque;
import java.util.ArrayList;

public class ListaPilhaFila {

@SuppressWarnings("empty-statement")
public static void main(String[] args) {
    ArrayList<Integer> lista = new ArrayList<>(5);
    System.out.println("Inserindo os numeros 1,2,3,4,5 na lista");
    lista.add(1);
    lista.add(2);
    lista.add(3);
    lista.add(4);
    lista.add(5);
    System.out.println(lista);
    System.out.println("--------------------------------------------");
    System.out.println("Removendo os dados da celula inicial da lista");
    while(!lista.isEmpty()) {
        int elemento = lista.remove(0);
        System.out.println(lista);
    }
        System.out.println("Lista vazia!");
        System.out.println("--------------------------------------------");
        
    System.out.println("Inserindo os dados da lista na pilha");
    ArrayDeque<Integer> pilha = new ArrayDeque<>(5);
    pilha.push(1);
    pilha.push(2);
    pilha.push(3);
    pilha.push(4);
    pilha.push(5);   
    System.out.println(pilha);
    System.out.println("--------------------------------------------");
    System.out.println("Remove os dados da pilha");
    pilha.clear();
    System.out.println(pilha);
    System.out.println("--------------------------------------------");
    while(!pilha.isEmpty()) {
        int elemento = pilha.pop();
        System.out.println(pilha);
    }
    System.out.println("Inserindo os dados da pilha na fila");
    ArrayDeque<Integer> fila = new ArrayDeque<>(10);
    fila.add(1);
    fila.add(2);
    fila.add(3);
    fila.add(4);
    fila.add(5);
    fila.add(0);
    fila.add(0);
    fila.add(0);
    fila.add(0);
    fila.add(0);
    System.out.println(fila);
    System.out.println("--------------------------------------------");
    System.out.println("Adicionando os numeros 6,7,8,9,10 na lista");
    lista.add(6);
    lista.add(7);
    lista.add(8);
    lista.add(9);
    lista.add(10);
    System.out.println(lista);
    System.out.println("--------------------------------------------");
    System.out.println("Removendo os dados das celulas iniciais da lista");
    while(!lista.isEmpty()) {
        int elemento = lista.remove(0);
        System.out.println(lista);
    }
    System.out.println("Lista vazia!");
    System.out.println("--------------------------------------------");
    System.out.println("Inserindo os dados da lista na pilha");
    pilha.push(6);
    pilha.push(7);
    pilha.push(8);
    pilha.push(9);
    pilha.push(10);   
    System.out.println(pilha);
    System.out.println("--------------------------------------------");
    System.out.println("Removendo os dados da pilha");
    pilha.clear();
    System.out.println(pilha);
    System.out.println("--------------------------------------------");
    System.out.println("inserindo os dados da pilha na fila");
    fila.add(0);
    fila.add(0);
    fila.add(0);
    fila.add(0);
    fila.add(0);
    fila.add(6);
    fila.add(7);
    fila.add(8);
    fila.add(9);
    fila.add(10);
    System.out.println(fila);       
}

}

**Saída do programa **
Inserindo os numeros 1,2,3,4,5 na lista
[1, 2, 3, 4, 5]
--------------------------------------------
Removendo os dados da celula inicial da lista
[2, 3, 4, 5]
[3, 4, 5]
[4, 5]
[5]
[]
Lista vazia!
--------------------------------------------
Inserindo os dados da lista na pilha
[5, 4, 3, 2, 1]
--------------------------------------------
Remove os dados da pilha
[]
--------------------------------------------
Inserindo os dados da pilha na fila
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
--------------------------------------------
Adicionando os numeros 6,7,8,9,10 na lista
[6, 7, 8, 9, 10]
--------------------------------------------
Removendo os dados das celulas iniciais da lista
[7, 8, 9, 10]
[8, 9, 10]
[9, 10]
[10]
[]
Lista vazia!
--------------------------------------------
Inserindo os dados da lista na pilha
[10, 9, 8, 7, 6]
--------------------------------------------
Removendo os dados da pilha
[]
--------------------------------------------
inserindo os dados da pilha na fila
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 10]
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

A outra forma de resultado que eu acho que é o correto, onde eu não adiciono os 0 na fila é essa:

inserindo os dados da pilha na fila
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

O que vocês acham? tá certo?

Olha eu acho que conseguir fazer da seguinte forma

LISTA:

Como pode perceber o resultado da a mesma sequencia de elementos inseridos .

@Yago_Rodrigues o caminho é esse, mas a idéia é que vc tire da lista um elemento e esse mesmo elemento vc insira na pilha e assim por diante. Seria algo assim:

ArrayList<Integer> lista = new ArrayList<>(5);
ArrayDeque<Integer> pilha = new ArrayDeque<>(5);
ArrayDeque<Integer> fila = new ArrayDeque<>(10);

lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
lista.add(5);

while(!lista.isEmpty()) {
    int elemento = lista.remove(0);
    pilha.push(elemento);
}

while(!pilha.isEmpty()) {
    int elemento = pilha.pop();
    fila.add(elemento);
}

Obs.: Sempre que forem compartilhar código, não coloquem prints, por favor

1 curtida

Hunn, entendi, valeu !

Fiz uma correção, na fila vc usa o metodo add ao inves do push.

1 curtida

package itemdalista2;

import java.util.ArrayDeque;
import java.util.ArrayList;

public class ItemDaLista2 {

public static void main(String[] args) {
    ArrayList<Integer> lista = new ArrayList<>(5);
    ArrayDeque<Integer> pilha = new ArrayDeque<>(5);
    ArrayDeque<Integer> fila = new ArrayDeque<>(10);
    
    lista.add(1);
    lista.add(2);
    lista.add(3);
    lista.add(4);
    lista.add(5);

    while(!lista.isEmpty()) {
        int elemento = lista.remove(0);
        pilha.push(elemento);
    }

    while(!pilha.isEmpty()) {
        int elemento = pilha.pop();
        fila.add(elemento);
    }
    lista.add(6);
    lista.add(7);
    lista.add(8);
    lista.add(9);
    lista.add(10);

    while(!lista.isEmpty()) {
        int elemento = lista.remove(0);
        pilha.push(elemento);
    }

    while(!pilha.isEmpty()) {
        int elemento = pilha.pop();
        fila.add(elemento);
    }
    System.out.println(fila);
}   

}

Cuja saída foi :
[5, 4, 3, 2, 1, 10, 9, 8, 7, 6]
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

1 curtida

Coloca essa linha dentro dos while pra vc acompanhar o que aconteceu.

System.out.printf("Lista: %s\nPilha: %s\nFila: %s\n\n", lista, pilha, fila);
1 curtida

Na pilha o último a entrar é o primeiro a sair, “Last In, First Out”, muito bom cara, um dia vou aprender a programa no nível de vocês. Muito obrigado por me ajudar!

1 curtida

Como criar uma fila:

Queue<TipoDeDado> fila= new LinkedList<>();

Como adicionar um elemento ao final da fila:

fila.add(elementoQueDesejaAdicionar);

Como remover um elemento do início da fila:

TipoDeDado elementoRemovido = fila.remove();

Como criar uma pilha:

Stack<TipoDeDado> pilha= new Stack<>();

Como adicionar um elemento ao topo da pilha:

pilha.push(elementoQueDesejaAdicionar);

Como remover um elemento do topo da pilha:

TipoDeDado elementoRemovido = pilha.pop();
1 curtida

Moço eu queria te dar um abraço! OBRIGADA!!!

1 curtida