Evtl. hilft dir dies ja:
http://larskiesow.de/delphi_objlist.html
Ich habe das ganze allerdings mit einem Internen dynamischen array gelöst.
Alternativ könnte ich dir noch eine Implementierung anbieten, die auf zwei Stacks aufbaut (mussten wir mal in Informatik machen)
Ist allerdings
nicht mit Pointern.