LinkedLists mal anders

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.

Welcher Meinung seit ihr, wie LinkedLists ermöglich werden sollen?

Die Aktuelle Methode von PureBasic (also via "NewList")
16
67%
Mein Vorschlag (Dynamische Variante)
6
25%
Hauptsache die LinkedLists sind irgendwie möglich (Brauche keine Datenbäume)
1
4%
Mir ist es egal. Habe sie noch nie wirklich genutzt...
1
4%
 
Insgesamt abgegebene Stimmen: 24

Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

LinkedLists mal anders

Beitrag 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
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag 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.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag 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.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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?
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

was meint ihr mit Dynamisch Array ?

ein Array was sich selber ReAllocated, wenn man eine höheren Index?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Ein Dynamisches Array wie die du normal mit Dim machst.
Nicht solche wie Array.l[100].
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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 ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten