Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Recursiven Record erstellen..


Aya - Mi 04.12.02 03:52
Titel: Recursiven Record erstellen..
Hi,

kann ich irgendwie einen Recursiven Record erstellen???

Sowas wie z.B.

Quelltext
1:
2:
3:
4:
5:
6:
7:
Type
  TBox = Record
    X: Integer;
    Y: Integer;
    Z: Integer;
    Box: TBox;
  end;


So das ich halt in dem Record "TBox" denselben Record ein weiteresmal habe.. :)

So das ich irgendwann z.B. Box.Box.Box.Box.Box.Box.Box.X machen könnte...

Au'revoir,
Aya

PS: Ich brauche das ganze dafür:
Ich habe einen großen Würfel, TBox... ich unterteile diesen einen Würfel in 8 weitere, muß die irgendwo abspeichern... diese 8 Würfel unterteile ich wieder jeweils in 8 stück und auch das muß gespeichert werden... diese dann wieder jeweils in 8... usw.. und das beliebig oft :)

Für andere lösungsvorschläge bin ich auch dankbar


Klabautermann - Mi 04.12.02 07:12

Hallo,

das geht so nicht, da Delphi in dem Fall Theoretisch ja unentlich viel Speicher reservieren müsste.
Du kannst aber eine Verkettete Liste erstellen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Type
 PBox = ^TBox;
 TBox = Record
  X: Integer;
  Y: Integer;
  Z: Integer;
  Box: PBox;
 end;

Dann musst du nur für jede Instanz den Speicher selber Reservieren (NEW). In diesem Topic [http://www.auq.de/viewtopic.php?t=2667], ziemlich weit unten habe ich mal ein paar grunglegende funktionen auf Basis von verketteten Listen zusammengefasst. Das könnte dir vieleicht helfen.

Gruß
Klabautermann