Algorytmy podst struktury danych

background image

Struktury danych

Elementarne struktury danych

Piotr Prokopowicz

background image

Plan wykładu

•Stos i kolejka

•Abstrakcyjne typy danych

(ang. abstract data

types)

•Zmienna, tablica, rekord, wskaźnik

•Listy

background image

Podstawy

•Rekord/struktura – wiązanie pudełek (różnych)
w jedną paczkę

•Wskaźnik – gdzie jest pudełko?

•Tablica – ponumerowany szereg pudełek

•Zmienna – pudełko do przechowywania
wartości

•Struktura danych (ang. data structure) -
sposób

przechowania

i

wykorzystania

informacji w komputerze.

background image

Zbiory dynamiczne

Wyróżnione pole obiektu (nie w każdym zbiorze) - klucz
istotne ze względu na realizację zbioru.
W elemencie mogą być inne pola, wskaźniki, mniej lub bardziej
istotne ze względu na dostęp.

Elementem zbioru dynamicznego jest obiekt, który można
odczytać oraz zmienić, dysponując wskaźnikiem do niego.

Na zbiorach dynamicznych operują algorytmy
W odróżnieniu od zbiorów w kontekście matematycznym –
zbiory dynamiczne mogą się powiększać, zmniejszać zmieniać w
różny sposób.

Porównywalność

kluczy

(liniowy

porządek)

-

częste

przyjmowane założenie.

background image

Typowe operacje

SEARCH(S,k) – zapytanie

Typowe operacje: zapytania, operacje modyfikujące.

S-zbiór, k-klucz, x-element lub wskaźnik do elementu, NIL(NULL) –
element nie istnieje

INSERT(S,x) – modyfikacja

DELETE(S,x) – modyfikacja

MINIMUM(S) – zapytanie

MAXIMUM(S) – zapytanie

SUCCESOR(S,x) – zapytanie o najmniejszy element większy od x

PREDECESOR(S,x) – zapytanie o największy element mniejszy
od x

Zbiory co najmniej z operacjami: INSERT, DELETE, FIND(S,x) –
słowniki.

background image

ADT

(abstrakcyjny typ danych)

W komputerze:
Typ danych np. integer (lub int)– przechowywanie danych
Operacje – implementacja poprzez procedury
Struktura danych – przechowanie złożonej informacji w
komputerze

Przykład:
Liczby całkowite wraz z operacjami.
Argumentami operacji także mogą być ADT.
Operacje: działania matematyczne, sprawdzanie czy argument
jest liczbą całkowitą, różne działania nie tylko matematyczne
związane ze specyfiką modelu

ADT – model (bez szczegółów implementacji) z powiązaną z nim
listą operacji.
Zbiór dynamiczny w kontekście realizacji komputerowej.
Idea klasy w programowaniu obiektowym.

background image

Lista

Lista – skończony ciąg elementów
q = [x

1

, x

2

, ... x

n

]

Skrajne elementy listy – końce : lewy - x

1

,

prawy - x

n

Wielkość listy – długość (rozmiar) |q| = n

Szczególny przypadek listy – lista pusta |q| = 0
, q=[ ]
Podstawowe operacje:

INSERT (x) – dołączenie elementu x do listy
DELETE (x) – usunięcie elementu x z listy

background image

Stos

•Operacje na stosie:
INSERT(x) – PUSH (x) – wstawianie argumentu
operacji na stos
DELETE – POP – usuwanie – zdjęcie ze stosu

(bez

argumentu)

• Wykorzystanie stosu

•Stos (ang. last-in first-out, LIFO)

background image

Kolejka

•Operacje na kolejce:
INSERT (x) – ENQUEUE (x) – wstawianie
DELETE – DEQUEUE – zdjęcie z kolejki

(bez

argumentu)

•Kolejka (ang. first-in first-out, FIFO)

Początek – głowa
Koniec - ogon

• Wykorzystanie kolejki

background image

Lista z dowiązaniami

(wskaźnikowa, dynamiczna)

STATYCZNIE a DYNAMICZNIE w kontekście implementacji

Lista z dowiązaniami – elementy listy ułożone w liniowym
porządku

Porządek jest wyznaczany

(inaczej niż w tablicy, nie przez indeks)

przez wskaźniki, będące składowymi poszczególnych
elementów listy.
Pierwszy element – głowa, ostatni – ogon
Lista z dowiązaniami jest strukturą pozwalającą na
realizację wszystkich podstawowych operacji

(niekoniecznie

optymalnie)

na zbiorach dynamicznych

nil

HEAD

kluc

z

popr

z

nas

t

nil

5

20

8

background image

Różne listy

Dwukierunkowa, jednokierunkowa

Uporządkowana, posortowana – kolejność zgodna z
porządkiem na kluczach

Cykliczna – głowa wskazuje na ogon a ogon na głowę

Wartownik

uproszczenie

warunków

brzegowych,

skracanie czasu operacji

background image

Struktury wskaźnikowe

Rekordy z wskaźnikami – reprezentowanie ukorzenionych
drzew binarnych

Reprezentowanie dowolnych ukorzenionych drzew

Reprezentowanie grafów

background image

Koniec

Dziękuję za uwagę


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
Algorytmy i struktury danych, AiSD C Lista04
Algorytmy i struktury danych 08 Algorytmy geometryczne
Instrukcja IEF Algorytmy i struktury danych lab2
Algorytmy, struktury danych i techniki programowania wydanie 3
Algorytmy i struktury danych 1
Ściaga sortowania, algorytmy i struktury danych
ukl 74xx, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Archit
cw 0 1, pwr, informatyka i zarządzanie, Informatyka, algorytmy i struktury danych
AIDS w7listy, studia, Semestr 2, Algorytmy i struktury danych AISD, AIDS
k balinska projektowanie algorytmow i struktur danych
W10seek, studia, Semestr 2, Algorytmy i struktury danych AISD, AIDS
ALS - 001-000 - Zadania - ZAJECIA, Informatyka - uczelnia, WWSI i WAT, wwsi, SEM II, Algorytmy i Str
kolokwium1sciaga, Studia Informatyka 2011, Semestr 2, Algorytmy i struktury danych
Algory i struktury danych 1, NAUKA, algorytmy i struktury danych, WAT

więcej podobnych podstron