Hallo!
Ich suche eine Datenstruktur die Folgendes kann:
1. Elemente einfügen
2. Elemente löschen
3. feststellen, welches von zwei Elementen zuerst eingefügt wurde
Die Operationen sollen natürlich so effizient wie möglich sein, wobei sich schwer sagen lässt welche Operation am häufigsten vorkommt.
Meine Ideen sind:
I Liste/Stack: 1. konstant, 2. und 3. linear
II Baum mit Paaren von Element und laufender Einfügenummer (die immer erhöht und niemals heruntergezählt wird): alle 3 Operationen logarithmisch
Die Alternative II würde mir ja schon ganz gut gefallen, aber da der Einfügeindex unendlich erhöht wird, führt das zwangsweise irgendwann zu einem Overflow.
Bevor ich es mir jetzt antue II händisch zu verfeinern (z.B. periodische Neunummerierung der Elemente wenn der Index zu hoch wird): Kennt vielleicht jemand eine fertige Datenstruktur für diesen Zweck? (vielleicht sogar mit C++-Implementierung)