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.
Vi ste ovde: Home Predavanja Treća godina Informatički smer - Programski jezici 04 - Jednostruko ulančana lista