04 - Jednostruko ulančana lista
Primer programa koji žonglira jednostruko ulančanu listu:
program ju_lista;
type
pok=^slog;
slog=record
ime:string[20];
sled:pok;
end;
var
lista:pok;
brisanje:string[20];
jos:char;
procedure dodaj(var l:pok);
var
i:string[20];
tmp:pok;
begin
write('Unesite ime: ');
readln(i);
tmp := l;
new(l);
l^.ime:=i;
l^.sled:=tmp;
end;
procedure ispis(l:pok);
begin
writeln('Sledi ispis liste:');
if l=nil then
writeln('Lista je prazna')
else
while l<>nil do begin
writeln(l^.ime);
l:=l^.sled;
end;
end;
procedure brisi(var l:pok; trazi:string);
var
nasao:boolean;
tmp,tmp1:pok;
begin
nasao:=false;
tmp:=l;
while not(nasao) and (tmp<>nil) do
if tmp^.ime=trazi then
nasao:=true
else
tmp:=tmp^.sled;
if nasao then begin
if tmp=l then
l:=l^.sled
else begin
tmp1:=l;
while tmp1^.sled <> tmp do
tmp1:=tmp1^.sled;
tmp1^.sled:=tmp^.sled;
end;
dispose(tmp);
end;
end;
begin {glavni program}
lista:=nil;
write('Zelite li da unesete element? (D/N) ');
readln(jos);
while not(jos in ['n','N']) do begin
dodaj(lista);
write('Zelite li da unesete element? (D/N) ');
readln(jos);
end;
writeln;
ispis(lista);
writeln;
write('Koji element brisem? ');
readln(brisanje);
brisi(lista,brisanje);
writeln;
ispis(lista);
writeln;
write('Kraj programa (pritisnite ENTER)');
readln;
end.


Predavanja