Struktura wyszukiwania do obsługi przyszłych zdarzeń (w oparciu o czas)

Szukam efektywnej struktury danych, która pozwoli mi cue wydarzenia ... to znaczy będę miał aplikację, w której w dowolnym momencie wykonania, możliwe jest, że wydarzenie zostanie podniesione na przyszłość wskazać na wykonanie ... coś w stylu:

t = 20: w 420 sekund pojawia się At = 25: w 13 sekund pojawia się Bt = 27: w 735 sekund pojawia się C....

więc chciałbym mieć strukturę danych, gdzie mogę umieścić dowolne wydarzenie w dowolnym momencie w przyszłości i gdzie mogę uzyskać i (przez to) usunąć wszystkie należne wydarzenia ... również, plus będzie, jeśli udało mi się usunąć zdarzenie z struktury danych (ponieważ zostało anulowane) ... nie jest to jednak zbyt ważne, ponieważ mogę po prostu oznaczyć to jako anulowane ...

Moją pierwszą myślą było, być może, zrobienie jakiegoś drzewa, ale myślę, że część usuwania z powodu zdarzeń wymaga dużo ponownego równoważenia ...

Rozważam po prostu posiadanie skrótu int, mapowanie znaczników czasu na wartości null lub stosy zdarzeń, które mają wystąpić w tym momencie ... Myślę, że w scenariuszach, z wieloma zdarzeniami (być może wielokrotnością co sekundę - co jest tym, co ja zamierzam pracować), to w końcu nie jest taki zły pomysł ...

więc chętnie usłyszę twój wkład ... :)

edytować:

aby być bardziej szczegółowym: myślę, że n wynosi około 100K-1M i myślę, że mogę mieć około 1-100 zdarzeń na sekundę ...t nie ma szczególnego znaczenia ... tylko po to, aby zilustrować, że przyszłe zdarzenie może zostać "skolejkowane" w dowolnym momencie ...

dzięki

back2dos

questionAnswers(4)

yourAnswerToTheQuestion