Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Gibt es hier eigentlich noch kein Tut zu einfach/doppelt verketteten Listen? Wäre ja mal 'ne schöne Gelegenheit, sich mit seinem neuen Delphi vertraut zu machen :mrgreen:
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Nö, ist kein Aufwand, dann mach es so, wie Du selbst schon gesagt hast:PROCEDURE push(VAR zkopf:tzeiger;inhalt:char);
VAR zhilf, zneu:tzeiger;
BEGIN
//erstes Element soll angelegt werden
if zkopf = nil then
begin
new(zhilf);
zhilf^.inhalt := inhalt;
zhilf^.next := nil;
zkopf := zhilf;
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Durch diese Zuweisung hast Du immer das letzte Element der Liste in zkopf stehen. Soll das nicht so sein?
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Stimmt, war noch vom C&P übrig geblieben (schadet aber auch nicht) :zwinker:
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Ungetestet:PROCEDURE push(VAR zkopf:tzeiger;inhalt:char);
VAR zhilf, zneu:tzeiger;
BEGIN
//erstes Element soll angelegt werden
if zkopf = nil then
begin
new(zhilf);
zhilf^.inhalt := inhalt;
zhilf^.next := nil;
end
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Wenn Du nil an die Funktion übergibst, kommt der Fehler eben an der besagten Stelle.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Dann kann das nix werden, außer dass der Fehler dann später kommt.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
WHILE (zhilf <> nil) and (zhilf^.next <> NIL) DO zhilf:=zhilf^.next;
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Nochmal:zhilf^.next:=NIL; //Nachfolger ist nil
IF NOT(i=1) THEN
BEGIN
REPEAT
zhilf:=zhilf^.next; //jetzt ist auch zhilf nil
UNTIL zhilf^.next=NIL; //next von nil^?
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
29. Feb 2008
Diese Logik versteh ich nicht. Du setzt den Nachfolger initial auf nil, weist diesen in der Schleife dem Zeiger selbst zu (also sind anschließend beide nil) und fragst ihn dann wieder ab :gruebel: