Boa tarde pessoal, queria ajuda em um exercício

@javaflex, a dúvida aqui é como fazer essa lista de tamanho 5 com 5 elementos se portar como uma pilha e depois como fila. so isso

Entendo que pra quem inicia acha que é “só isso”. Isso é bem abrangente, tem que estudar sobre estrutura de dados antes. Se pesquisar no google vai encontrar muito conteúdo e até aulas.

Sei o que é lista, Stack, Queue e como se comportam o problema é aplicar isso kk

Sei que o sistema de ensino costuma ser ruim, mas nao tem jeito, busque conteúdos na internet. Na minha época nem tinha essas facilidades de google e eu tinha que ir pra biblioteca física.

1 curtida

Concordo. Eu já faço isso. Eu ainda tenho 4 dias para entregar essa atividade, uma hora ou outra eu consigo.

2 curtidas

Consegue, é fácil achar tutoriais ensinando esses assuntos, a exemplo do que o colega citou. Depois que tentar e tiver algum problema específico na execuçao do seu código, fique livre para postar dúvidas.

1 curtida

Sugestão de bibliografia: Java Como Programar 8, Cap. 22 - Estruturas de Dados Genéricas Personalizadas, pág. 695 - 714.

697 - Listas Vinculadas;
704 - Pilhas;
707 - Filas;
709 - Árvores.

1 curtida

Pelo que entendi do seu exercicio, não é preciso implementar uma lista, uma pilha e uma fila do zero.

Parece que vc só precisa observar como cada estrutura se comporta, neste caso podemos usar as ferramentas que o Java nos oferece.

Lista

Para representar a lista, vc pode usar um java.util.ArrayList:

// Cria lista com capacidade para 5 elementos
ArrayList<Integer> lista = new ArrayList<>(5);

Para adicionar elementos, usa-se o método add(), da seguinte forma:

// Adiciona 1 ao final da lista
lista.add(1);

Para remover os elementos da lista, vc pode usar o método remove(). O código abaixo remove o primeiro elemento da lista:

// remove o primeiro elemento
lista.remove(0);

Para remover todos, um por um, como pede o exercicio, vc pode usar o remove() dentro de um while:

// Enquando lista não estiver vazia
while(!lista.isEmpty()) {
    // Remova o primeiro elemento
    int elemento = lista.remove(0);
}

Pilha

Tanto para a pilha quanto pra fila, vc pode usar a classe ArrayDeque. Vamos focar aqui na função de pilha.

Obs.: O Java possui a java.util.Stack, mas a documentação recomenda usar implementações de java.util.Deque como a ArrayDeque mencionada aqui.

Eis um trecho da documentação:

A more complete and consistent set of LIFO stack operations is provided by the Deque interface and its implementations, which should be used in preference to this class. For example:


O trecho abaixo mostra como criar a estrutura, adicionar e remover elementos:

// Cria deque com capacidade para 5 elementos
ArrayDeque<Integer> pilha = new ArrayDeque<>(5);

// Insere 1 no topo da pilha
pilha.push(1);

// Enquando pilha não estiver vazia
while(!pilha.isEmpty()) {
    // Remove o elemento do topo da pilha
    int elemento = pilha.pop();
}

Fila

Vamos usar a mesma classe anterior para representar uma fila, o que diferenciará o comportamento serão os métodos que usaremos, veja:

// Cria deque com capacidade para 10 elementos
ArrayDeque<Integer> fila = new ArrayDeque<>(10);

// Insere 1 no fim da fila
fila.add(1);

// Remove o elemento do inicio da fila
int elemento = fila.remove();
3 curtidas

Cara muito obrigado, isso vai me ajudar bastante , eu tenho uma outra dúvida, será que da para fazer isso tudo em um só processo? ou é necessário tipo criar um projeto, no caso eu uso o NetBeans, e depois criar outras 2 classes que vão interagir com a classe principal? ou da pra fazer isso em uma só estrutura ?

2 curtidas

Você pode fazer do jeito que achar melhor, o importante é vc conseguir visualizar e descrever o que aconteceu. Eu faria numa classe só, pra manter simples.

1 curtida

ok, também prefiro. Obrigado

man eu to fazendo essa atv agora cara e tambem estou com as mesmas duvidas que voce! estou nela desde as 9 da manha rsrs ja vi diversos videos mais ainda não consigo resolver essa questão!
É isso que eu tbm quero saber … No caso a atv pede pra nos criarmos uma lista com 5 celulas… e depois “remover” os dados da lista e enseri-las em pilhas com 5 celulas deve-se sempre remover os dados da celula inicial da lista e depois remover os dados da pilha e enserir em uma fila com 10 celulas…

Pelo que eu entendi a atv pede pra criarmos 3 tipos de estruturas passando de uma pra outra ? e quando eles pedem pra remover os dados da lista é apagar literalmente os numeros ? e deixa-la em branco ? Pra no final sobrar apenas a fila com 10 celulas contento os dados que foram passados da pilha ?

Poxa eu achei essa atv muito complexa pra quem está apredendo agora estrutura de dados! alguem da uma base ai PFV

Exatamente, pelo menos foi o que eu entendi.

Sim e sim.

Além da fila, vc vai ficar com uma lista e uma fila vazias.

1 curtida

Não sei se vai dar pra vizualizar mas essa forma de criar uma lista esta correta ?


Eu fiz dessa maneira


Eu acho que assim está mais certo né?

Sim. Mas é só o primeiro passo.

1 curtida

Man tu não quer me passar seu zap pra nós tentarmos resolver essa atv juntos ?