Algorytmy i Struktury Danych - riad.usk.pk.edu.plriad.usk.pk.edu.pl/~zk/AISD_W1.pdf · Algorytmy i...

33
Algorytmy i Struktury Danych Wykładowca: dr inż. Zbigniew Kokosiński [email protected] POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych www.pk.edu.pl/~zk/AISD_HP.html

Transcript of Algorytmy i Struktury Danych - riad.usk.pk.edu.plriad.usk.pk.edu.pl/~zk/AISD_W1.pdf · Algorytmy i...

Algorytmy i Struktury Danych

Wykładowca:

dr inż. Zbigniew Kokosiński

[email protected]

POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych

www.pk.edu.pl/~zk/AISD_HP.html

Wykład 1: Podstawowe struktury danych

1. Tablica.

2. Lista i jej warianty:

kolejka (FIFO - First In-First Out)

stos (LIFO - Last In-First Out)

kolejka podwójna

3. Zbiór.

4. Graf.

5. Drzewo.

6. Kopiec. Kolejka priorytetowa.

7. Struktury, unie.

8. Abstrakcyjne typy danych.

Tablice 1

Tablice 2

Listy 1

Listy 2

Listy 3

Listy 4

Listy 5

Listy 6

Złożoność operacji na listach

Stos - implementacja

Zastosowanie stosu – notacja odwrotna polska

Notacja odwrotna

polska - przykład

Kolejka - implementacja

Zbiór 1

Zbiór 2

Grafy 1

Grafy 2

Graf – reprezentacja tablicowa

Graf – reprezentacja listowa

Drzewa, kopce

Kopiec zupełny – reprezentacje

reprezentacja grafowa

reprezentacja tablicowa

Def. Kopiec zupełny jest to drzewo prawie pełne, w którym liści może brakować tylko na ostatnim poziomie i są one spójnie ułożone od lewej do prawej.

Kopiec zupełny – reprezentacja tablicowa

Aby przejść z danego wierzchołka na pozycji j do jego rodzica wyznacz jego pozycję i ze wzoru :

1) i =j/2 , gdy j jest parzyste,lub 2) i =⌊j/2⌋ , gdy j jest nieparzyste (⌊ ⌋ oznacza zaokrąglenie do najbliższej liczby całkowitej w dół)

Aby przejść z danego wierzchołka na pozycji j do jego dwojga dzieci wyznacz ich pozycje k i l ze wzorów :

3) k =2j ,i 4) l =2j+1 .

Kopiec zupełny – operacje 1

Dodanie nowego wierzchołka P do kopca zupełnego(wierzchołek P umieszczamy jako ostatni element

i przywracamy własność kopca)

Kopiec zupełny – operacje 2

Zastąpienie elementu maksymalnego X przez element C(w miejsce X umieszczamy element C i przywracamy

własność kopca)

Kopiec zupełny – operacje 3

Usunięcie elementu maksymalnego T z kopca zupełnego(w miejsce T umieszczamy element ostatni M

i przywracamy własność kopca)

Budowa kopca – metoda top-down

Litery tworzące napis

A S O R T I N G E X A M P L E

dodajemy kolejno do pustego kopca dbając

o zachowanie własności kopca.

Budowa kopca – metoda bottom-up

Litery tworzące napis A S O R T I N G E X A M P L E umieszczamy na kolejnych poziomach drzewa binarnego,

a następnie przywracamy własność kopca od dołu.

Sortowanie przez kopcowanie

Sortowanie przez kopcowanie w porządku nierosnącym polega na usuwaniu kolejnych elementów

maksymalnych z korzenia kopca, przywracaniu własności kopca i umieszczaniu

usuniętych elementów na zwolnionych w ten sposób

pozycjach drzewa binarnego. Litery tworzące napis A SORTING EXAMPLE

odczytujemy posortowane na kolejnych poziomach drzewa.

Struktura

Unia

Źródła rysunków :

1. Banachowski L., Diks K., Rytter W. : Algorytmy i struktury danych,WNT 1996

2. Sedgewick R. : Algorithms in C, Addison-Wesley 1990