Das wird bei Linked Lists nicht funktionieren, da die Elemente in der Regel verstreut im Speicher und nicht nacheinander liegen.andi256 hat geschrieben:oder mit CompareMemory(*MemoryID1, *MemoryID2, Länge)
Listen vergleichen
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
Nein die Zahlen sind nicht geordnet. Wenn in der einen Liste die Zahlen 123456 sind und in der anderen die Zahlen 233357, möcht ich zum einen Wissen welche Zahlen fehlen, und welche Zahlen wie oft doppelt vorhanden sind was ich dann gerne in der einen Liste speichern möchte. Das mir in für die eine Liste ein NextElement vorhanden ist, liegt daran das mir das mit dem verschachteln im Prinzip klar ist, die Frage ist nur wie.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@dietmar
mal pseudecode, geht schneller:
...so ungefähr halt... 
mal pseudecode, geht schneller:
Code: Alles auswählen
resetlist schlecht
while nextelement schlecht
resetlist gut
while nextelement gut
if schlecht = gut
count+1
endif
wend
wend

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Ja so in die richtung dacht ich mir das auch.
nur dass dies nicht den gewünschten Erfolg bringt. Die Lösung ist bestimmt wieder so einfach.
Code: Alles auswählen
ResetList(Schlecht())
While NextElement(Schlecht())
ResetList(Gut())
While NextElement(Gut())
If LPLSchlecht()\Nummer = LPLGut()\Nummer
LPLSchlecht()\Anzahl = Schlecht()\Anzahl + 1
EndIf
Wend
Wend
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
dietmar.. was ist denn dieses LPL?
ohne deine listen zu kennen...
du musst natürlich elemente der listen vergleichen, die du in der schleife durchgehst...
LPLGut() ist eine ganz andere Liste als Gut()
...welche namen hast du denn im NewList-command ?
ohne deine listen zu kennen...
du musst natürlich elemente der listen vergleichen, die du in der schleife durchgehst...
Code: Alles auswählen
ResetList(Schlecht())
While NextElement(Schlecht())
ResetList(Gut())
While NextElement(Gut())
If Schlecht()\Nummer = Gut()\Nummer
Zähler + 1
EndIf
Wend
Wend
...welche namen hast du denn im NewList-command ?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
Da ist es wieder, nun sogar mit einer Linked List mehrdietmar hat geschrieben:Code: Alles auswählen
ResetList(Schlecht()) While NextElement(Schlecht()) ResetList(Gut()) While NextElement(Gut()) If LPLSchlecht()\Nummer = LPLGut()\Nummer LPLSchlecht()\Anzahl = Schlecht()\Anzahl + 1 EndIf Wend Wend

Du hast bisher die LLs Schlecht, Gut, LPLSchlecht und LPLGut und springst bzw. vergleichst wild hin und her ohne ersichtlichen Sinn. Die Positionszeiger in LPLSchlecht und LPLGut werden dabei nicht einmal verändert, befinden sich also stets auf dem zuletzt hinzugefügten Element (angenommen das davor nicht doch irgendwo ein ResetList aufgerufen wurde).
So wird meiner Ansicht nach ein Schuh draus:
Code: Alles auswählen
ResetList(Schlecht())
While NextElement(Schlecht())
ResetList(Gut())
While NextElement(Gut())
If Schlecht()\Nummer = Gut()\Nummer
Schlecht()\Anzahl = Schlecht()\Anzahl + 1
EndIf
Wend
Wend
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@FD
siehe mein posting...
nur daß ich keinen sinn drin sehe, einen anzahl-counter innerhalb einer der listen zu erhöhen...
außer natürlich, es soll gezählt werden, wie oft das element der ersten in der zweiten vorkommt...
dann müßte es aber gesichert sein, daß es in der ersten genau einmal vorkommt, und das scheint mir nicht gegeben...
deshalb hab ich nen unabhängigen gewählt...
[edit]
achso.. doch.. hab nochmal in dietmars post geschaut...
ok, dann is FDs lösung passend...
siehe mein posting...
nur daß ich keinen sinn drin sehe, einen anzahl-counter innerhalb einer der listen zu erhöhen...
außer natürlich, es soll gezählt werden, wie oft das element der ersten in der zweiten vorkommt...
dann müßte es aber gesichert sein, daß es in der ersten genau einmal vorkommt, und das scheint mir nicht gegeben...
deshalb hab ich nen unabhängigen gewählt...
[edit]
achso.. doch.. hab nochmal in dietmars post geschaut...
ok, dann is FDs lösung passend...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.