Seite 1 von 3

LinkedLists mal anders

Verfasst: 16.11.2008 17:58
von Josef Sniatecki
Wie ihr bestimmt schon bemerkt habt, haben viele ihre eigenen
Include-Quellcodes für eigene LinkedList-Befehle. Ich habe auch mein
eigenes List-Include. Doch wieso?

Nun die eingebauten LinkedLists-Verwaltung im Compiler geben am
Ende nur Probleme. Z.B. ist es nicht möglich Datenbäume zu erstellen,
da diese LinkedLists nicht dynamsich erstellt werden. (also nicht
während der Laufzeit).

Eine bessere Lösung wäre, wenn die Befehle etwa so angewendet
werden können:

Code: Alles auswählen

MyList=CreateList(SizeOf(Long))
*Long.Long=AddElement(MyList)
*Long\L=123
*Long=AddElement(MyList)
*Long\L=234

ForEach MyList,@*Long
  Debug *Long\L
Next

;Die ausgabe wäre 123 und 234.
Durch diese Möglichkeit kann man genauso dynamisch Listen erstellen so
wie es auch bei Gadgets, Sprites, Images u.s.w. ist.

Vieleicht denkt Fred auch darüber nach. Wenn PureBasic
den Code da oben ermöglichen könnte, dann wäre ich natürlich sehr
glücklich.

Aus meiner Perspektive gibt es nur einen Nachteil für meinen
Vorschlag: Dass LinkedLists nicht automatisch nach dem ende einer
Prozedur gelöscht werden.

Was denkt ihr?

Gruß Josef

Verfasst: 16.11.2008 18:14
von STARGÅTE
Dein Code gefällt mir ganz und garnicht.

denn durch deine Methode fällt eine sehr einfache Möglichekeit weg:
nämlich LinkedList oder Struktur.

Denn um nur Wörterlisten oder Zahlenlisten zu bearbeiten ist die Variante in PB super:
NewList Wort.s()
Damit ist Wort() dann auch gleich (wenns ein Element gibt) das Element selber, ohne benutzung von Pointern oder Strukturen.

Verfasst: 16.11.2008 18:20
von Josef Sniatecki
@Stargate: Da hast du schon recht. Die Einfachheit fällt da weg, doch
dafür kann man weningstens während der Laufzeit neue Listen
definieren und damit ganze Datenbäume erstellen. Man darf sich jetzt
nicht so von meinem Code erschrecken lassen. Sind halt nun mal Zeiger
dabei.

Verfasst: 16.11.2008 18:27
von Thorium
Das müsste auch noch angenehmer gehen. Man müsste Linked Lists eigentlich in Structures erstellen können. Dann könnte man auch schöne Datenbäume machen. Genauso wie ich dynamische Arrays in Structures vermisse.

Verfasst: 16.11.2008 18:30
von STARGÅTE
jo ist mir klar, ich habe auch kein Problem mit Pointer.

Aber ich denke mal, wenn es soweit ist, wird sich das auch mit den "normalen" Methode realisieren lassen.

Verfasst: 16.11.2008 18:34
von cxAlex
Es kommt darauf an für was man die LinkedLists braucht. Aber sonst währ ich auch stark für dynamisch erstellbare Listen ZUSÄTZLICH zu den jetzt vorhanden und dynamische Arrays in Structuren.

@Josef: MSN?

Verfasst: 16.11.2008 19:11
von STARGÅTE
was meint ihr mit Dynamisch Array ?

ein Array was sich selber ReAllocated, wenn man eine höheren Index?

Verfasst: 16.11.2008 19:14
von cxAlex
Ein Dynamisches Array wie die du normal mit Dim machst.
Nicht solche wie Array.l[100].

Verfasst: 16.11.2008 19:21
von ts-soft
dynamische Arrays gehen doch in strukturen. Dafür gibts doch [0]
Nur den Speicher muß ich gegebenenfalls allokieren.
Das andere kann man sehr komfortabel mit XML im Speicher machen, wenn
auch nicht ganz so schnell.

Verfasst: 16.11.2008 19:22
von STARGÅTE
Dim erzeugt doch kein Dynamisches Array :?
oder habe ich da was verpasst ?

Ich kann es höhstens mit ReDim noch mal größer oder kleiner machen, das ist aber in meinen Augen nicht Dynamisch ...