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 6 von 7

Nachdem wir die Funktion zum Erstellen und Anhängen neuer Elemente geschrieben haben, brauchen wir eine Overload Funktion, die übergebene Parameter entsprechend anpasst und der LL_Add Funktion übergibt.

Function Element_Add(ByRef V_List_F as Element_Type Ptr, ByRef V_List_L as Element_Type Ptr, V_Root as Element_Type Ptr, V_Parent as Element_Type Ptr, V_Data as String) as Element_Type Ptr
Return LL_Add(V_List_F, V_List_L, V_Root, V_Parent, 1, StrPtr(V_Data), Len(V_Data))
End Function

Diese Funktion speichert einen String in einem neu erzeugten Element ab. Es sind noch weitere Overloads möglich z.B. für UByte, UShort, UInteger, ...

Function Element_Add(ByRef V_List_F as Element_Type Ptr, ByRef V_List_L as Element_Type Ptr, V_Root as Element_Type Ptr, V_Parent as Element_Type Ptr, V_Data as UByte) as Element_Type Ptr
Return LL_Add(V_List_F, V_List_L, V_Root, V_Parent, 2, @V_Data, SizeOf(V_Data))
End Function

Function Element_Add(ByRef V_List_F as Element_Type Ptr, ByRef V_List_L as Element_Type Ptr, V_Root as Element_Type Ptr, V_Parent as Element_Type Ptr, V_Data as UShort) as Element_Type Ptr
Return LL_Add(V_List_F, V_List_L, V_Root, V_Parent, 3, @V_Data, SizeOf(V_Data))
End Function

'...

Wie man sieht, sind nicht viele Änderungen nötig. Das spart vor allem Quellcode ein, nachteilig sind aber die Geschwindigkeitseinbußen. Jeder Funktionsaufruf benötigt etwas Zeit, um sich aufzubauen und alle Parameter zurecht zu stellen. Das gleiche gilt für das Beenden einer Funktion. Die übergebenen Daten müssen wieder gelöscht und der Speicher für die Funktion aufgeräumt werden usw. Dies kostet zwar Zeit, ist jedoch beim hier betriebenem Aufwand durchaus legitim, zumal wir sowieso Zeit sparen durch Verwendung der Linked List.





 

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

  Versionen Versionen