program e_list; { Datenstruktur einer einfach verketteten Liste
zum Experimentieren ( z.B. Sortieren ) }
uses crt;
type link = ^node;
node = record
info : string;
next : link;
end;
var head,z,k : link;
procedure list_init;
begin
new(head);
new(z);
head^.next:=z;
z^.next:=z;
end;
procedure delete_next(Knoten : link);
var temp : link;
begin
temp:=Knoten^.next;
Knoten^.next:=temp^.next;
dispose(temp);
end;
procedure insert_after(Knoten : link; Inhalt : string);
var temp : link;
begin
new(temp);
temp^.next:=Knoten^.next;
temp^.info:=Inhalt;
Knoten^.next:=temp;
end;
procedure read_liste;
var temp : link;
stuff : string;
begin
list_init;
temp:=head;
writeln('Geben Sie nun die Inhalte aller Knoten an . ( Ende mit CR ) ');
writeln;writeln;
repeat
write(' Inhalt ? '); readln(stuff);
if stuff<>'' then begin
insert_after(temp,stuff);
temp:=temp^.next;
end;
until stuff='';
end;
procedure print_liste(ab : link);
var temp : link;
begin
temp:=ab;
while temp<>z do
begin
write(temp^.info , '---');
temp:=temp^.next;
end;
writeln('ende');
end;
begin
clrscr;
writeln(' *** Test-Programm fÜr einfache Liste *** ');
writeln('Zuerst muß eine Liste mit Buchstaben o.Ä. erzeugt werden ! ');
writeln;writeln;
read_liste;
readln;
clrscr;
print_liste(head^.next);
readln;
end.