Wyświetlenie wybranych elementów listy jednokierunkowej

Wyświetlenie wybranych elementów listy jednokierunkowej
ZU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

witam, potrzebuje pomocy, gdyz nie potrafie zmodyfikowac procedury, ktora mi wyswietli z listy tylko elementy ktore ja chce

Kopiuj
PROCEDURE Wyswietl;
VAR
 wsk:wskaznik;
BEGIN
 IF pierwszy = NIL
  THEN Write('Lista jest pusta!')
  ELSE BEGIN
        wsk := pierwszy;
        Writeln(wsk^.liczba);
        WHILE wsk^.next <> NIL
         DO BEGIN
             wsk := wsk^.next;
             Writeln(wsk^.liczba);
            END;
       END;
 ReadKey;
END; 
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
type czyChce = function(wsk:wskaznik):Boolean;

procedure Wyswietl(wsk:pierwszy;fun:czyChce);
var wsk:wskaznik;
begin
  if pierwszy=nil then Write('Lista jest pusta!')
  else
  begin
    wsk:=pierwszy;
    while wsk<>nil do
    begin
      if fun(wsk) then Writeln(wsk^.liczba);
      wsk:=wsk^.next;
    end;
  end;
end;
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12316
0

@zupaaa - a które elementy chcesz?

Jeśli przeraża Cię przekazywanie funkcji jako argumentu, po pierwsze skorzystaj z konstrukcji jaką podał poprzednik (chodzi o pętlę While), a po drugie wstaw sobie w miejsce wywołania funkcji fun jakiś swój warunek, sprawdzający wartość z aktualnie trzymanego we wskaźniku węzła listy;

Zrób jak chcesz, byle byś zrozumiał jak to ma działać.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.