Estructura de búsqueda para el manejo de eventos futuros (basados ​​en el tiempo)

Estoy buscando una estructura de datos eficiente, que me permita detectar eventos ... es decir, tendré una aplicación donde, en cualquier momento de ejecución, es posible que un evento se genere para un futuro Punto de ejecución ... algo así como:

t = 20: en 420 segundos, aparece At = 25: en 13 segundos, se produce Bt = 27: en 735 segundos, se produce C...

así que me gustaría tener una estructura de datos, donde pueda poner cualquier evento en cualquier momento en el futuro y donde pueda obtener y (al hacerlo) eliminar todos los eventos debidos ... también, una ventaja sería, si Pude eliminar un evento de la estructura de datos (porque se canceló) ... aunque no es muy importante, ya que simplemente puedo marcarlo como cancelado ...

Mi primer pensamiento fue, tal vez, para hacer algún tipo de árbol, pero supongo que la parte de eliminación de eventos requiere un gran rebalanceo ...

Estoy considerando simplemente tener un hash int, asignar marcas de tiempo a nulo o a pilas de eventos que van a ocurrir en ese momento en el tiempo ... pienso en escenarios, con muchos eventos (posiblemente múltiples cada segundo, que es lo que tengo la intención de trabajar con), esto en realidad no es tan mala idea después de todo ...

Así que estoy ansioso por escuchar su opinión ... :)

editar:

para ser más específicos: creo que n aquí está a unos 100K-1M, y supongo que podría tener alrededor de 1-100 eventos / segundo ...La t no tiene ninguna importancia especial ... es solo para ilustrar que un evento futuro se puede "poner en cola" en cualquier momento ...

Gracias

back2dos

Respuestas a la pregunta(4)

Su respuesta a la pregunta