Transcript
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych
Algorytmy i Struktury Danych www.pk.edu.pl/~zk/AISD_HP.html
Wykładowca: dr inż. Zbigniew Kokosiński
[email protected]
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 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.
reprezentacja grafowa
reprezentacja tablicowa
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 SORTING EXAMPLE 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