program p11; type sarasas = ^saraso_irasas; saraso_irasas = record data:char; prev:sarasas; next:sarasas; end; procedure sarasas_iterpti_i_gala(var sar:sarasas; data:char); 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:char):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:string; begin s := NIL; writeln(' == Veskite skaicius, seka uzbaikite nuliu =='); while (true) do begin readln(c); if (c<0 or c>9) then writeln('Ivestas ne skaicius'); 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.