Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer of Array of Pointer neues Prinzip (https://www.delphipraxis.net/164992-pointer-array-pointer-neues-prinzip.html)

Marcel2906 9. Dez 2011 11:58

AW: Pointer of Array of Pointer neues Prinzip
 
danke :))

DeddyH 9. Dez 2011 12:06

AW: Pointer of Array of Pointer neues Prinzip
 
Du musst Dich einfach von dem Gedanken lösen, dass Du auf eine verkettete Liste irgendwie indiziert zugreifen könntest :zwinker:

Marcel2906 9. Dez 2011 12:57

AW: Pointer of Array of Pointer neues Prinzip
 
Zitat:

Zitat von DeddyH (Beitrag 1140510)
[edit] Bei doppelt verketteten Listen macht es auch Sinn, neben First ein Last zu haben, das auf dem letzten Element steht, dann kann man die Liste sowohl von vorn als auch von hinten durchlaufen ;) [/edit]

Das habe ich jetzt mal versucht. Aber weiß nicht wie ich das machen soll. Das neu hinzugefügte ist ja quasi immer das letzte...

DeddyH 9. Dez 2011 13:13

AW: Pointer of Array of Pointer neues Prinzip
 
Zitat:

Zitat von Marcel2906 (Beitrag 1140539)
Das neu hinzugefügte ist ja quasi immer das letzte...

Ja eben. Willst Du nun ein neues Element hinzufügen, musst Du nicht mehr von vorn bis hinten die ganze Liste durchgehen, sondern springst gleich zu Last, erstellst das neue Element, weist es Last als Nachfolger zu und machst es dann zum neuen Last.

Marcel2906 9. Dez 2011 13:27

AW: Pointer of Array of Pointer neues Prinzip
 
also so ?! :

Delphi-Quellcode:
Procedure TForm1.AddElement(Wert: integer);
Var
   hlp: PEintrag;
Begin
   // Anfang vorhanden ?
   If (First = Nil) Then Begin
      New(First);
      First^.Vorgaenger := Nil; // Der Anfang der Kette hat keinen Vorgänger;
      First^.Nachfolger := Nil; // Der Nachfolger ist auch erstmal nicht vorhanden.
      last := First;
   End Else Begin
      hlp := First;
      While (hlp^.Nachfolger <> Nil) Do
         hlp := hlp^.Nachfolger;
      New(last);
      last^.Vorgaenger := hlp;
      last^.Nachfolger := Nil;
      hlp^.Nachfolger := last;
   End;
   last^.Wert := Wert;
End;

DeddyH 9. Dez 2011 13:34

AW: Pointer of Array of Pointer neues Prinzip
 
Gerade das Durchhangeln wollen wir uns doch sparen.
Delphi-Quellcode:
Procedure TForm1.AddElement(Wert: integer);
Var
   hlp: PEintrag;
Begin
   // Anfang vorhanden ?
   If (First = Nil) Then Begin
      New(First);
      First^.Vorgaenger := Nil; // Der Anfang der Kette hat keinen Vorgänger;
      First^.Nachfolger := Nil; // Der Nachfolger ist auch erstmal nicht vorhanden.
      last := First;
   End Else Begin
      New(hlp);
      hlp^.Vorgaenger := Last;
      hlp^.Nachfolger := nil;
      Last^.Nachfolger := hlp;
      Last := hlp;
   End;
   Last^.Wert := Wert;
End;
Ungetestet, sollte aber stimmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz