Ich versuche, die richtige Datenstruktur für diesen Anwendungsfall zu finden, aber habe anscheinend nicht die richtige Terminologie für die Suche.Welche Datenstruktur zum Finden eines Punktes in einer Liste von Bereichen?
Ich habe viele Kopien der folgenden Struktur:
struct Item {
var start: Int
var end: Int
var type: Int
}
Die in Item
dargestellten Bereiche sind nicht überlappend und angrenzend.
Ich muß in der Lage sein:
- Abfrage, die
Item
Int
Index bei einem gegebenen vorliegen - Weg vorwärts/rückwärts von dem entfernt
Item
der Sammlung von Item
Willen regelmäßig aktualisiert werden, entweder als vollständiger Wiederaufbau oder durch Anhängen an das Ende. Mid-collection-Einsätze sind wahrscheinlich selten genug, um einen Neuaufbau von Grund auf zu rechtfertigen.
Kann mir bitte jemand auf eine geeignete Struktur oder vielleicht die richtige Terminologie hinweisen, damit ich mich weiter erforsche?