Ich hab mir aus Spaß mal ein paar Datenstrukturen gebastelt.
Ein Stack und ein Queue, und dann (etwas komplexer) eine Map. Genauergesagt, zwei Maps.
Meine Maps speichern ein TObject mit einem String als Schlüssel. (der wird intern als MD5 Hash gespeichert, mithilfe von Assarbads MD5-
Unit (abgespeckte Version))
Eine TArrayMap, die Schlüssel und Werte in sortierten Arrays speichert.
Eine TTreeMap, die Werte in einem Binärbaum speichert.
Der Baum ist noch nicht balanciert und ich konnte ihn bisher auch noch nicht auf Bugs testen (muss ich morgen mal machen), aber ich hängs trotzdem schon mal an.
Achja, ich hab übrigens in Wrappers.pas ein paar Wrapper-Klassen definiert, um auch primitive Datentypen speichern zu können. In den Maps gibt es so etwas schon vordefiniert.
EDIT: Source reformatiert.