ELEMENTARNE STRUKTURY DANYCH ZBIORY Zbiory dynamiczne Operacje na zbiorach dynamicznych : SEARCH (S, k) INSERT (S, x) DELETE (S, x) MINIMUM (S) MAXIMUM (S) SUCCESSOR (S, x) PREDECESSOR (S, x) IMPLEMENTACJE ZBIORÓW DYNAMICZNYCH STOSY KOLEJKI LISTY jednokierunkowe dwukierunkowe cykliczne DRZEWA STOS Struktura danych , w której element dodaje się za ostatnio wstawionym elementem, a usuwa - ostatnio dodany element. (LIFO : LAST-IN, FIRST-OUT) Implementacja stosu w postaci tablicy : array S[1..n] of integer ; topS = indeks ostatnio wstawionego elementu do S ; ( indeks wierzchołka stosu) Stos S składa się z elementów S[1 .. topS] tablicy S . Jeśli topS = 0 , to stos S jest pusty. STOSY STACK-EMPTY (S) ; {Sprawdza czy stos S jest pusty} begin if topS = 0 then return TRUE else return FALSE end ; PUSH ( S, x ) ; {Dodaje element x do stosu S} begin topS := topS + 1; S[topS] := x end ; POP (S) ; {Usuwa element ze stosu S} begin if STACK-EMPTY (S) then error else begin topS := topS - 1; return S[topS + 1] end end ; KOLEJKA Struktura danych, w której element dodaje się za ostatnio wstawionym elementem a usuwa pierwszy wstawiony element (FIFO : FIRST-IN, FIRST-OUT) Implementacja kolejki w postaci tablicy : array Q[1..n] of integer ; headQ = indeks pierwszego elementu kolejki (wskazuje na początek kolejki). tailQ = indeks wyznaczający miejsce, w które można wstawić następny element do kolejki. Kolejka Q składa się z elementów Q[headQ .. tailQ - 1] tablicy Q . Jesli headQ = tailQ , to kolejka Q jest pusta.