Public feed
#378278
program p11;
type sarasas = ^saraso_irasas;
saraso_irasas = record
data:integer;
prev:sarasas;
next:sarasas;
end;
procedure sarasas_iterpti_i_gala(var sar:sarasas; data:integer);
var tmp, ntmp:sarasas;
begin
if (sar = NIL) then
begin
new(sar);
sar^.prev := NIL;
sar^.next := NIL;
sar^.data := data;
exit;
end;
tmp := sar;
while (tmp^.next <> NIL) do tmp := tmp^.next;
new(ntmp);
ntmp^.data := data;
ntmp^.next := NIL;
ntmp^.prev := tmp;
tmp^.next := ntmp;
end;
procedure sarasas_naikinti(var sar:sarasas);
var tmp:sarasas;
begin
if (sar = NIL) then
begin
exit;
end;
tmp := sar;
while (tmp^.prev <> NIL) do tmp := tmp^.prev;
while (sar <> NIL) do
begin
tmp := sar^.next;
dispose(tmp);
sar := tmp;
end;
end;
function sarasas_spauzdinti_elementus(var sar:sarasas; data:integer):integer;
var tmp:sarasas;
rez, radome:integer;
begin
if (sar = NIL) then
begin
sarasas_spauzdinti_elementus := 0;
exit;
end;
tmp := sar;
while (tmp^.prev <> NIL) do tmp := tmp^.prev;
rez := 0;
radome := 0;
while (tmp <> NIL) do
begin
inc(rez);
if (tmp^.data = data) then
begin
writeln('elementas rastas, jo numeris yra: ', rez);
inc(radome);
end;
tmp := tmp^.next;
end;
sarasas_spauzdinti_elementus := radome;
end;
var s:sarasas;
c:integer;
begin
s := NIL;
writeln(' == Veskite skaicius, seka uzbaikite nuliu ==');
while (true) do
begin
readln(c);
if (c = 0) then break;
sarasas_iterpti_i_gala(s, c);
end;
writeln(' == Iveskite elementa, kuri skaiciu noretumete rasti ==');
readln(c);
c := sarasas_spauzdinti_elementus(s, c);
writeln(' == Radome ', c, ' tokiu elementu ==');
sarasas_naikinti(s);
readln;
end.