M
Hi,
wenn es Dir um Geschwindigkeit geht, dann würde ich mich mal über A-V-L-Bäume schlau machen. Im Grunde ein Binärer Baum, der aber beim Einfügen und Löschen eines Knotens immer dafür sorgt, dass er ausbalanciert ist. Somit hast Du immer die geringste Höhe im Baum und hast Laufzeit O(log n). Selbst im worst-case.
Ist zwar etwas komplizierter, als ein simples Array, aber die Vorteile sind nicht zu verachten.
Hier ein Link, wo das erklärt wird, mit einem Programm, wo man ein wenig mit spielen kann.
http://www.informatiktreff.de/materialien/sek_ii/algorithmen/avl/avlbaum.htm