36 end;
37 end;
38 nowyA.ncxt:-prcv/\ncxł;
39 prcvA.ncxł:-nowy;
40 end;
41
42 procedurę dclctc nodc(var f: wskaźnik; a:integer);
43 var
44 p,prcv.tmp: wskaż tuk;
45 begin
46
47 if f-.dana^ then
48 begin
49 tmp:-P\ncxt;
50 dispose(f);
51 fi-tmp;
52 exit;
53 end;
54 p:-f;
55 repeat
56 prcv:-p;
57 p:-p^.ncxt;
58 umil (p-nil) or (p*.dana-a);
59 if p-nil then exil;
60 prev\ncxt:-p\next;
61 disposc(p);
62 end;
63
64 procedurę crcate(var fiwskaznik; a:intcgcr j.
65 var
66 nowywskaznik;
67 begin
68 iffimilthcn
69 begin
70 new(nowy);
71 nowy\next:-nil;
72 nowy'.dana;-a;
73 fi-nowy;
74 end
75 ckc
76 insert rx>dc(f.a j.
77 end;
78
79 procedurę removc(var f.wskaznikj;
80 var
81 tmp: wskaźnik;
Podstawy Programowania - semestr dmgi
Operacja usuwania elementu przechowującego określoną wartość jest zrealizowana w procedurze „dclctc nodc" posiada ona dwa parametry. Przez pierwszy pobiera wskaźnik na pierwszy element na liście, natomiast przez drugi wartość, którą powinien przechowywać element do u sunięć a Procedura ma również zmienne lokalne, które pełnią taką samą rolę jak w procedurze „msert nodc". W wierszu 47 następuje sprawdzenie, czy nic powinien być usunięty pierwszy element. Jeśli tak. to odbywa się to w laki sam sposób, jak w przypadku procedury ..dcąucue". w kolejce FIPO. W przeciwnym przy padku, podobnie jak w ..insert nodc" przeszukiwana jest itcracyjnic cala lista (wiersze 55 - 58|. Po wyjściu z pętli zmienna .p" może mieć wartość „NIL". Wówczas kończymy procedurę, bowiem na liście nic ma elementu, który chcielibyśmy usunąć. Jeśli jednak „p” jest różne od .„NIL", wówczas w wierszach 60 i 61 element wskazywany przez tę zmienną jest usuwany z listy. Można to zilustrować następującym rysunkiem:
2. Po wykonaniu wiersza 60
Procedura „rcmovc” ma tylko jeden parametr. Do jej wnętrza przekazywany jest przez zmienną wskaźnik na pierwszy element listy. Usuwa ona wszystkie elementy listy, z pierwszym elementem włącznie.
Zasada działania procedury ..show" jest taka sama. jak procedury .pnnt qucuc". która służyła do wypisania zawartości kolejki.
W bloku głównym programu tworzona jest lista, przy pomocy procedury „ercate" zawierająca elementy o wartościach od I do 5. Następnie dodawane są do niej (nadal przy użyciu „ercate") elementy o wartościach od 10 do 15. Po wyświetleniu zawartości listy dodawany jest pojedynczy element o wartości 16, a w ięc on pow inien się znaleźć na końcu listy, co można sprawdzić pił kolejnym wy pisaniu jej na ekran. Następnie ił listy dodawany jest element o wartości 6. który powinien zostać umieszczony pomiędzy elementami 5 i 10. Lista jest ponownie wypisy wana na ekran i dodawany jest do niej element o wartości 0. czyli musi on zostać wstawiony przed pierwszym elementem na liście. W wierszu 112 lista jest wypisy wana na ekran. Powyższe czynności mają na celu pokazanie, że procedura ..insert nodc” jest napisana poprawnie. Następnie wywoływana jest procedura ..dclctc nodc". która usuwa z listy element o wartości 0.
2