ich hab noch ein kleines problem...
und zwar, wenn ich nun eine zweite liste erzeuge und dort soll die erste in umgekehrter reihenfolge hineingeschrieben werden.....
dafür habe ich zkopf und zkopf2 in der ersten
unit deklariert...die waren vorher gar nicht deklariert
allerdings bekomme ich jetzt immer diese fehlermeldung: [Fehler] Unit1.pas(51): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
hier nocheinmal die zugehörige Prozedur:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR laeng,i:byte;
zkopf,zkopf2 :tzeiger;
begin
init(zkopf);
laeng:=length(edit1.Text);
FOR i:=1 TO laeng DO
push(zkopf,edit1.text[i]);
init(zkopf2);
FOR i:=1 TO laeng DO
push(zkopf2,pop(zkopf));
edit1.text:=top(zkopf2);
end;
die pop-funktion:
Delphi-Quellcode:
FUNCTION pop(VAR zkopf:tzeiger):char;
VAR zhilf1,zhilf2:tzeiger;
z:char;
BEGIN
zhilf1:=zkopf;
zhilf2:=zkopf^.next;
WHILE NOT(zhilf2^.next = NIL) DO
BEGIN
zhilf1:=zhilf2;
zhilf2:=zhilf2^.next;
END;
zhilf1^.next:=NIL;
pop:=zhilf2^.inhalt;
END;
und die im vorigen teil besprochene push prozedur:
Delphi-Quellcode:
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;
end
//eine weiteres Element soll angehängt werden
else
begin
zhilf:=zkopf;
while (zhilf <> nil) and (zhilf^.next <> nil) do
zhilf:=zhilf^.next;
new(zneu);
zneu^.inhalt:=inhalt;
zneu^.next:=NIL;
zhilf^.next:=zneu;
end;
END;
danke