Einzelnen Beitrag anzeigen

Skiron

Registriert seit: 14. Dez 2003
153 Beiträge
 
#7

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 12:09
wenn mich nicht alles täuscht, sind verkette listen nichts anderes als arrays
in delphi gehts damit ein bisschen einfacher:
Delphi-Quellcode:
var
  Liste: array of MeinTyp;

...
  setLength(Liste, 1); //setzt dann die länge des Arrays
...
falls es sich in der Aufgabe darum handelt, eine verkette liste zu programmieren, kannste das logisch nicht nehmen.
da gibts aber dann noch was lustiges:

anstatt dem ganzen:
Delphi-Quellcode:
type
  PMeinTyp = ^TMeinTyp;
  TMeinTyp = record
    Item: integer;
    Next: PMeinTyp;
  end;

var
  First: PMeinTyp;

...
  new(First); //oder so, weiß es nicht mehr genau...
...
kannste nehmen:
Delphi-Quellcode:
var
  First: ^Integer;
  ItemCount: integer;
  GesuchtesElement: ^Integer;

...
//beim 1. mal:
  First := allocMem(0);
  ItemCount := 0;
//danach:
  inc(ItemCount); //oder dec(ItemCount), fallses eins weniger werden sollte...
  reallocMem(First, ItemCount * sizeOf(integer));
//und der zugriff is ganz toll: (mit einer function)

function Element(Index: integer): Pointer;
asm
  push esi
  push eax
  mov esi, First
  mov eax, Index
  imul eax, sizeof(Integer)
  add esi, eax
  mov GesuchtesElement, eax
  pop eax
  pop esi
end;

...
falls das noch gilt, is nämlich schon (fast) ein array
Mann zu Frau:
Zieh dich aus, wir müssen reden!
  Mit Zitat antworten Zitat