Algorytmy i Struktury Danych - riad.usk.pk.edu.plriad.usk.pk.edu.pl/~zk/AISD_W1.pdf · Algorytmy i...
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
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.
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.