Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Estou com duvida em uma questão de fila, queria saber se alguém poder me da uma luz (java)

QUESTÃO: Escreva um programa que tenha uma fila cujos elementos possuem um campo inteiro representando sua prioridade. Quanto menor o valor deste campo, maior a prioridade do elemento. Insira n elementos com propriedades diversas na fila e depois divida a fila em duas, uma com elementos cuja prioridade é menor ou igual ao valor p fornecido pelo usuário e outra com os elementos restantes.

4 respostas

Oi Pedro, sugestão: Crie duas lista, faça um loop na sua lista original e para cada elemento que siga a descrição você vai adicionando nas suas listas auxiliares.

solução!

Olá Pedro,

A sugestão do Alberto é uma alternativa viável e se você quiser uma segunda solução você também pode utilizar uma fila de prioridade. No Java existe uma classe chamada PriorityQueue que representa exatamente o tipo de estrutura que você está procurando.

Nesta estrutura, quando menor o número inserido, maior a sua prioridade. Para adicionar um item na fila você pode usar o método add e para retirar o item de maior prioridade você pode utilizar o método remove.

Desse modo, você pode criar uma fila de prioridade, adicionar todos os elementos nessa fila e depois ir retirando os elementos dela e adicionando em uma primeira lista de valores com prioridade menor ou igual a p. Quando a prioridade passar a ser maior que p você pode adicionar todos os itens em uma segunda lista que vai guardar todos os itens com prioridade maior que p.

Boa galera!!

Uma questão que vem é.. é um trabalho de faculdade? Pois talvez você terá que implementar uma fila, sem usar uma API pronta do Java, é esse o seu caso?