Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Baumstrukturen in FreeBASIC

von MitgliedThePuppetMasterSeite 4 von 7

Als Nächstes benötigt das Ursprungselement "Adam und Eva" einen Pointer. Dieser Pointer zeigt auf das allererste Element (Root).

'Variablen der Linked List selbst
Dim Shared List_F       as Element_Type Ptr     'Pointer auf das erste (F = First) Element in der Linked List
Dim Shared List_L       as Element_Type Ptr     'Pointer auf das letzte (L = Last) Element in der Linked List

Es ist möglich, auch mit nur einem Pointer zu arbeiten. Der Vorteil bei Verwendung von 2 Pointern ist das Einsparen von Zeit beim Hinzufügen neuer Elemente. Ein neues Element wird hier automatisch an das Ende der Liste gepackt. Hierfür muss zuerst das letzte Element in der entsprechenden Ebene gefunden werden. Die einfachste Art dies zu tun, besteht darin, sich über V_Next von Element zu Element zu hangeln, solange bis V_Next den Wert 0 enthält, also kein nächstes Element mehr folgt. Dann ist das Ende der Liste gefunden. Natürlich lässt sich das letzte Element auch einfach zwischenspeichern, um sich das Suchen zu ersparen. Und genau dies bewerkstelligt der zweite Pointer.

Wird jedoch ein Element in die Mitte oder an anderer Stelle hinzugefügt, muss man sich dennoch durch die Liste "hangeln", da es keine direkte "Index"-Nummern wie bei einem Array gibt (siehe vorheriges Kapitel). Das Speichern der Indexnummern in der Liste ist zwar möglich, jedoch nicht empfehlenswert, da beim Hinzufügen eines neuen Elements z.B. in die Mitte der Linked List automatisch die darauffolgenden Indexnummern angepasst werden müssten.





 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  
Zusätzliche Informationen und Funktionen
  Bearbeiten Bearbeiten  

  Versionen Versionen