O TAD LEF

Este trabalho visa implementar um Tipo Abstrato de dado LEF - “lista de eventos futuros”, também conhecido como “fila de prioridade”.

Uma fila de prioridade é uma fila na qual cada item é associado a uma chave (prioridade); a fila é mantida ordenada segundo os valores crescentes das chaves. Simulações geralmente usam uma fila de prioridades chamada LEF (lista de eventos futuros), para manter os próximos eventos que irão ocorrer na simulação, na ordem crescente do tempo associado a cada evento. Nesse caso, a chave de cada evento é o seu instante de ocorrência.

Algumas operações tipicamente definidas sobre uma fila de prioridades são:

Exemplo de funcionamento:

operação (valor, chave) conteúdo da fila
cria [ ]
insere (5, 3) [ (5, 3) ]
insere (0, 6) [ (5, 3) (0, 6) ]
insere (1, 1) [ (1, 1) (5, 3) (0, 6) ]
insere (-2, 2) [ (1, 1) (-2, 2) (5, 3) (0, 6) ]
insere (8, 2)1) [ (1, 1) (-2, 2) (8, 2) (5, 3) (0, 6) ]
insere (9, 4) [ (1, 1) (-2, 2) (8, 2) (5, 3) (9, 4) (0, 6) ]
retira min [ (-2, 2) (8, 2) (5, 3) (9, 4) (0, 6) ]
retira min [ (8, 2) (5, 3) (9, 4) (0, 6) ]
retira max [ (8, 2) (5, 3) (9, 4) ]

Atividade

Você deve implementar um TAD LEF - “lista de eventos futuros” usando uma lista encadeada dupla. Essa lista deverá ser mantida em ordem crescente de acordo com o tempo (chave) de cada evento.

As seguintes operações devem ser suportadas:

Os arquivos necessários para desenvolver este trabalho estão neste arquivo. Eles são:

Entregáveis

Entregue um único arquivo tp5.tgz contendo todos os arquivos do projeto.

Critérios de avaliação:

1)
Se dois valores têm a mesma chave, devem ser inseridos e retirados em ordem FIFO.