Boa noite pessoal.
Eu estou a fazer um trabalho de simulação de elevadores e tenho que criar uma fila de pessoas que estão à espera do elevador mas nessa fila há pessoas com prioridade, ou seja, idosos<crianças<adultos. Eu já consegui criar a fila mas agora não sei como manter esta fila sempre com esta ordem. E houve um amigo meu que me disse que achava que havia filas com prioridade. Alguem sabe-me indicar quais?
Que TAD escolher para uma fila com prioridade?
K
3 Respostas
T
import java.util.*;
class Pessoa {
public int idade;
public String nome;
public Pessoa (String nome_, int idade_) { idade = idade_; nome = nome_; }
public String toString() { return "[" + nome + ", " + idade + " anos]"; }
}
class TestePriorityQueue {
public static void main(String[] args) {
// Esta é uma fila de prioridade onde os mais idosos ficam à frente dos mais novos
PriorityQueue<Pessoa> pq = new PriorityQueue<Pessoa> (1, new Comparator<Pessoa>() {
public int compare (Pessoa p1, Pessoa p2) {
return p2.idade - p1.idade;
}
});
pq.add (new Pessoa ("Matusalem", 969));
pq.add (new Pessoa ("Noé", 950));
pq.add (new Pessoa ("Abraão", 175));
pq.add (new Pessoa ("Adão", 930));
pq.add (new Pessoa ("João Batista", 33));
pq.add (new Pessoa ("Jesus", 33));
// Isto imprime os mais idosos antes dos mais jovens
for (Pessoa p = pq.poll(); p != null; p = pq.poll()) {
System.out.println (p);
}
}
}
P.S. Com que idade João Batista morreu mesmo? Chutei 33 mas não sou teólogo e a Wikipedia não me disse a idade exata.
Tenta a Bíblia. Dizem que é um bom livro… hehehe.
Criado 9 de dezembro de 2008
Ultima resposta 9 de dez. de 2008
Respostas 3
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo