Algorytmy wyklady, Elementarne struktury danych

background image

ELEMENTARNE

STRUKTURY DANYCH

background image

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)

background image

STOSY

IMPLEMENTACJE ZBIORÓW

DYNAMICZNYCH

KOLEJKI

LISTY

jednokierunkowe

dwukierunkowe

cykliczne

DRZEWA

background image

STOS

Struktura danych , w której

element

dodaje się za ostatnio wstawionym elementem,
a usuwa - ostatnio dodany element. (LIFO : LAST-IN, FIRST-
OUT)

background image

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.

4

7

2

tops = 3

background image

STOSY

STOS_PUSTY(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
STOS-PUSTY (S)
then error
else
begin
topS := topS - 1;
return S[topS
+ 1]
end
end ;

background image

KOLEJKA

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.

Struktura danych, w której element
dodaje się za ostatnio wstawionym elementem
a usuwa pierwszy wstawiony element (FIFO : FIRST-IN, FIRST-
OUT)

background image

12 5

2 34

headQ = 1

tailQ = 5

background image

KOLEJKA_PUSTA(Q) ;

{Sprawdza czy kolejka Q jest pusta}

begin
if headQ =tailQ
then return TRUE
else return FALSE
end ;

DO_KOLEJKI (Q, x ) ;

{Dodaje element x do

kolejki Q}

begin
Q[tailQ] := x;
tailQ:= tailQ+ 1;
end ;

Z_KOLEJKI(Q)

{Usuwa element z kolejki
Q
}

begin
if
KOLEJKA_PUSTA
(Q)
then error
else
begin
headQ:= headQ
+ 1;
return
Q
[headQ -1]
end
end ;


Document Outline


Wyszukiwarka

Podobne podstrony:
Algorytmy i struktury danych 01 Przegląd algorytmów i elementarnych struktur danych
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
Algorytmy i struktury danych Wykład 3 i 4 Tablice, rekordy i zbiory
wyk.9, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembler
wyk.7.1, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembl
Algorytmy i struktury danych AiSD-C-Wyklad05
wyk.7, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembler
wyk.8, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembler
Algorytmy i struktury danych, AiSD C Wyklad04 2
wyklad AiSD, Informatyka PWr, Algorytmy i Struktury Danych, Algorytmy i Struktury Danych
Algorytmy i struktury danych AiSD-C-Wyklad04
NP 12 Algorytmy i struktury danych Boryczka-do wykładu
Algorytmy i struktury danych, AiSD C Wyklad03 2
Z Wykład 17.05.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Z Wykład 20.04.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Algorytmy i struktury danych, AiSD C Wyklad04
Algorytmy i struktury danych Wykład 2 Typ danych,Proste typy danych
Algorytmy i struktury danych Wykład 8 Języki programowania

więcej podobnych podstron