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.