Estrutura de pesquisa para lidar com eventos futuros (baseados em tempo)

Eu estou procurando por uma estrutura de dados eficiente, que me permita indicar eventos ... ou seja, eu terei um aplicativo, onde a qualquer momento na execução, é possível, que um evento será gerado para um futuro ponto em execução ... algo como:

t = 20: em 420 segundos, ocorre At = 25: em 13 segundos, B ocorret = 27: em 735 segundos, C ocorre...

Então, eu gostaria de ter uma estrutura de dados, onde eu possa colocar em qualquer evento em qualquer momento no futuro e onde eu possa obter e (ao fazê-lo) remover todos os eventos devido ... também, um plus seria, se Eu fui capaz de remover um evento da estrutura de dados (porque foi cancelado) ... não muito importante, já que eu posso simplesmente marcá-lo como cancelado ...

Meu primeiro pensamento foi, talvez, fazer algum tipo de árvore, mas eu acho que a parte de remoção de eventos requer muito reequilíbrio ...

Eu estou pensando em simplesmente ter um hash int, mapear timestamps para null ou pilhas de eventos que estão para ocorrer naquele momento ... eu acho que em cenários, com um monte de eventos (possivelmente múltiplos a cada segundo - que é o que eu pretende trabalhar com), isso realmente não é uma idéia tão ruim depois de tudo ...

por isso estou ansioso para ouvir sua entrada ... :)

editar:

para ser mais específico: eu acho que n aqui está em cerca de 100K-1M, e eu acho que eu poderia estar tendo cerca de 1-100 eventos / segundo ...o t não tem importância especial ... é apenas para ilustrar que um evento futuro pode ser "enfileirado" a qualquer momento ...

obrigado

back2dos

questionAnswers(4)

yourAnswerToTheQuestion