Seite 1 von 1

Linkedlist in Strukture

Verfasst: 27.11.2005 03:43
von Konne
Wie kann man eine LinkedList in eine Structure machen.
Also in etwa so:


Code: Alles auswählen

structure
Long.l
String.s
LinkedList()
endstructure

Verfasst: 27.11.2005 04:13
von MVXA
Garnicht. Musst dir selbst Funktionen für die Linked List programmieren.
Oder du suchst nach "Linked List" von Remi_Meier. Er hat mal ein paar
Funktionen gepostet, mit denen man dynamisch mit den PB Linked Lists
arbeiten konnte.

Verfasst: 27.11.2005 05:40
von crossroads
Ich hatte eine haarsträubende Idee, die ich mal versucht habe umzusetzen; und siehe da: es geht :D

Der folgende Code ist aber aus der Abteilung "Kraut und Rüben" und mit Vorsicht zu genießen - hier werden wild Pointer verbogen - also Achtung:

Code: Alles auswählen


Structure test
  x.l
  y.l
  pntrLL.l
EndStructure

NewList List1()
NewList List2()
NewList chkList()
AddElement(chkList())

Procedure checkout(*chck.test)
  ChangeCurrentElement(chkList(), *chck\pntrLL)
  chkList() + 22
EndProcedure  

DefType.test var1, var2

AddElement(List1()):List1() = 55
AddElement(List1()):List1() = 99
FirstElement(List1())
AddElement(List2()):List2() = 123

var1\pntrLL = @List1()
var2\pntrLL = @List2()

Debug "-------- var1 ----------"
Debug "vorher: " + Str(List1())
checkout(var1)
Debug "nachher: " + Str(List1())
NextElement(List1())
Debug List1()

Debug "-------- var2 ----------"
Debug "vorher: " + Str(List2())
checkout(var2)
Debug "nachher: " + Str(List2())
@Konne
Ob Dir das hilft? Ich glaub's eher nicht; aber vorenthalten wollte ich Euch diese "Blume im Codedschungel" auch nicht :mrgreen:

Verfasst: 27.11.2005 14:00
von Konne
Es hilft mir schon ist aber doch zu gefrickelt. Und in der Hilfe steht man soll keine Pointer verbiegen :)
Nunja man kann die Daten ja immernoch mit Trennzeichen in einen String schreiben. Schade das es nicht ungefrickelt geht:(

Verfasst: 27.11.2005 16:40
von MVXA
Du kannst auch eine Array in der Struktur benutzen :freak:.

Verfasst: 27.11.2005 17:16
von NicTheQuick
Es gibt doch mittlerweile genügend andere LinkedLists, die man benutzen
kann, in der "Codes, Tipps & Tricks"-Sektion. Sogar meine TreeLL wäre
dafür geeignet, nur etwas überladen.

Verfasst: 29.11.2005 00:09
von Konne
Nunja ich mache es jetzt so das ich eine Pointer auf eine Buffer reinschreibe. In den Buffer schreibe ich am Anfang die gesammte Lenge und dann immer die Infos. So geht Ein Element Adden dank ReallocateMemory und der gesammten Länge ziemlich schnell. Und da ich auch nachträglich keine Infos ändern sondern nur auslesen muss ist es so doch ziemlich effektiv.