Problem z napisaniem procedury

0

Witam mam takie zadanie:
Napisz procedurę rekurencyjną która wypisuje na ekran ilość elementów w kolejce jednokierunkowe. Zakładamy ze do procedury jest zawsze przekazywany wskaźnik na pierwszy element tej kolejki.

ja robie to tak:

procedure ilosc(p:twsk);
var
i:byte;
if p<>nil then ilosc(p^.twsk);
i:=i+1;
if p=nil then writeln('W kolejce jest: ',i, 'elementów');
end;

Niestety ta procedura nie działa poprawnie. Jak by ktoś mógł ją napisać poprawnie to bardzo dziękuję za pomoc.

0

wypisuje ?

procedure ilosc(p: twsk; ile: integer = 0);
begin
  if p <> nil then ilosc(p^.twsk, ile + 1) else
  writeln('W kolejce jest: ', i, ' elementów');
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1