• Nie Znaleziono Wyników

Autor: Marlena Hącel Kolejka

N/A
N/A
Protected

Academic year: 2021

Share "Autor: Marlena Hącel Kolejka"

Copied!
44
0
0

Pełen tekst

(1)

Pod patronatem mgr Radosława Grzesiaka

(2)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD POCZATEK:EP;

KONIEC:EP;

END;

Stworzenie typu : EP wskazującego na

rekord ELEMENT KP wskazującego na

rekord KOLEJKA Rekord ELEMENT

zawierający WARTOSC i NASTEPNY

potrzebnie do

dodawania kolejnych elementów do kolejki Rekord KOLEJKA

zawierający zmienne POCZATEK i KONIEC potrzebnie do

tworzenia kolejki

(3)

THEN BEGIN

K^.KONIEC^.NASTEP NY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

Jeśli początek kolejki jest

różny od NIL ( zera) wtedy Końcowi kolejki wskazujący

na NASTEPNY przypisujemy E ;

Koniec kolejki przyjmuje wartość zmiennej E W przeciwnym razie Kolejka wskazująca na

początek przyjmuje

wartość zmiennej E oraz Kolejka wskazująca na kolec przyjmuje wartość zmiennej E

(4)

FUNCTION DEQUEUE(K :KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <>

NIL THEN BEGIN

TEMP:=K^.POCZAT EK; K^.POCZATEK :=

TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP END;

ELSE

DEQUEUE := NIL;

END;

Funkcja DEQUEUE (

zdejmowanie elementu z kolejki)

Zmienna pomocnicza TEMP Typu EP

Jeśli Początek kolejki jest różny od NIL (zera)

wtedy

TEMP staje się

początkiem kolejki ; Początek kolejki staje się

Następy TEMP

Następny TEMP staje się NILEM

Zdejmowanie TEMP z kolejki

W przeciwnym wypadku DEQUEUE przyjmuje

wartość ZERA

(5)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 5

5

-NIL Poczatek Koniec

(6)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 5

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

5

Poczatek Koniec

(7)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 5

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

5

Poczatek Koniec

(8)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 5

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

Kolejka jest pusta

Element trafia na początek kolejki który jest zarazem jej końcem

5 5

Poczatek Koniec

(9)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 12

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

5

Poczatek Koniec

(10)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 12

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

W kolejce jest już pierwszy element

5

Poczatek Koniec

(11)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

BEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 12

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

W kolejce jest już pierwszy element

Element staje się następnym elementem kolejki a zarazem jej nowym końcem.

5 12

Poczatek Koniec

(12)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 23

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

5 12

Poczatek Koniec

(13)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 23

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

W kolejce jest już kolejny element

5 12

Poczatek Koniec

(14)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 23

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

W kolejce jest już pierwszy element

Element staje się następnym elementem kolejki a zarazem jej nowym końcem.

5 12 23

Poczatek Koniec

(15)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 6

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

5 12 23

Poczatek Koniec

(16)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 6

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

W kolejce jest już kolejny element

5 12 23

Poczatek Koniec

(17)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Tworzymy nowy element z wartością 6

Odwołujemy się do procedury ENQUEUE ze zmiennymi KOLEJKA I ELENENT

Przechodzimy do procedury ENQUEUE

Sprawdzamy czy kolejka jest pusta

W kolejce jest już pierwszy element

Element staje się następnym elementem kolejki a zarazem jej nowym końcem.

5 12 23 6

Poczatek Koniec

(18)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

5 12 23 6

Poczatek Koniec

(19)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

5 12 23 6

Poczatek Koniec

(20)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

5 12 23 6

Poczatek Koniec

(21)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

5 12 23 6

Poczatek Koniec

(22)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się kolejny elementem kolejki

5 12 23 6

Poczatek Koniec

(23)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się następnym elementem kolejki

Następny element kolejki przyjmuje wartość NIL

5

12 23 6

Poczatek Koniec

(24)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się następnym elementem kolejki

Następny element kolejki przyjmuje wartość NIL

Usuwamy pierwszy element kolejki

12 23 6

Poczatek Koniec

5

(25)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

12 23 6

Poczatek Koniec

(26)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

12 23 6

Poczatek Koniec

(27)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

12 23 6

Poczatek Koniec

(28)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się kolejny elementem kolejki

12 23 6

Poczatek Koniec

(29)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się następnym elementem kolejki

Następny element kolejki przyjmuje wartość NIL

12

23 6

Poczatek Koniec

(30)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się następnym elementem kolejki

Następny element kolejki przyjmuje wartość NIL

Usuwamy pierwszy element kolejki

6 23

Poczatek Koniec

12

(31)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

23 6

Poczatek Koniec

(32)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

23 6

Poczatek Koniec

(33)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

23 6

Poczatek Koniec

(34)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się kolejny elementem kolejki

23 6

Poczatek Koniec

(35)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się następnym elementem kolejki

Następny element kolejki przyjmuje wartość NIL

23

6

Poczatek Koniec

(36)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się następnym elementem kolejki

Następny element kolejki przyjmuje wartość NIL

Usuwamy pierwszy element kolejki

6

Poczatek Koniec

23

(37)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

6

Poczatek Koniec

(38)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

6

Poczatek Koniec

(39)

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

6

Poczatek Koniec

(40)

TYPE EP=^ELEMENT;

KP=^KOLEJKA;

ELEMENT=REKORD

WARTOSC:BYTE;

NASTEPNY:EP;

END;

KOLEJKA=REKORD

POCZATEK:EP;

KONIEC:EP;

END;

PROCEDURE ENQUEUE(K: KP; E:EP);

BEGIN

IF K^.POCZATEK <> NIL THEN BEGIN

K^.KONIEC^.NASTEPNY := E;

K^.KONIEC := E;

END ELSE BEGIN

K^.POCZATEK := E;

K^.KONIEC := E;

END;

END;

FUNCTION DEQUEUE(K : KP):EP;

VAR TEMP:EP;

IF K^.POCZATEK <> NIL THEN BEGIN

TEMP:=K^.POCZATEK;

K^.POCZATEK := TEMP^.NASTEPNY;

TEMP^.NASTEPNY := NIL;

DEQUEUE := TEMP;

END ELSE

DEQUEUE := NIL;

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

NEW(ELEMENT);

ENQUEUE(KOLEJKA, ELEMENT);

END;

BEGIN

FOR I:=1 TO 4 DO BEGIN

DEQUEUE(KOLEJKA);

END;

END.

Przechodzimy do funkcji DEQUEUE która zdejmuje elementy z kolejki

Sprawdzamy czy na początku kolejki znajduje się jakiś element

Na początku kolejki znajduje się element

Do zmiennej pomocniczej TEMP przypisujemy początek kolejki

Początek kolejki staje się kolejny elementem kolejki

6

Poczatek Koniec

Cytaty

Powiązane dokumenty

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy

Akcje drużyny po rozegraniu rzutu rożnego aż do straty piłki lub oddalenia piłki przez drużynę przeciwnika do strefy