Prinzipiel würde ich als Datenstruktur einen Baum preferieren:
Delphi-Quellcode:
tAtom = class;
tbindung = class
Art: integer;// einfach-, doppel-, dreifach-Bindung
PartnerAtom: tAtom;
// Winkel
// Länge
end;
tAtom = class
Symbol: string;
Ordnungszahl: integer;
// etc.
Bindungen: array of tBindung;
end;
wenn tAtom.Bindungen = nil, dann ist es ein einzelnes Atom, andernfalls ein Molekül
(allerdings dürfte diese Art von Datenstruktur nicht alle Anforderungen der
OOP-Kapselung erfüllen
)