Struktury Danych i Złożoność Obliczeniowa

Podobne dokumenty
ALGORYTMY I STRUKTURY DANYCH

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wysokość drzewa Głębokość węzła

Sortowanie bąbelkowe

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Algorytmy i Struktury Danych

Listy, kolejki, stosy

Drzewa czerwono-czarne.

Algorytmy i struktury danych. wykład 5

Drzewa poszukiwań binarnych

Podstawy Informatyki. Metody dostępu do danych

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Algorytmy i Struktury Danych

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 8. Drzewa AVL i 2-3-4

Algorytmy i Struktury Danych.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Struktury Danych i Złożoność Obliczeniowa

Algorytmy i Struktury Danych

Drzewa poszukiwań binarnych

Tadeusz Pankowski

Koszt zamortyzowany. Potencjał - Fundusz Ubezpieczeń Kosztów Algorytmicznych

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Instrukcje dla zawodników

Lista liniowa dwukierunkowa

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

ALGORYTMY I STRUKTURY DANYCH

Wykład 2. Drzewa poszukiwań binarnych (BST)

Algorytmy i struktury danych Struktury danych - drzewa IS/IO, WIMiIP

Algorytmy i struktury danych

STRUKTURY DANYCH I ZŁOŻONOŚĆ OBLICZENIOWA STRUKTURY DANYCH I ZŁOŻONOŚĆ OBLICZENIOWA. Część 3. Drzewa Przeszukiwanie drzew

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Wykład 6. Drzewa poszukiwań binarnych (BST)

Porządek symetryczny: right(x)

Struktury danych: stos, kolejka, lista, drzewo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Algorytmy i struktury danych

ALGORYTMY I STRUKTURY DANYCH

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki

Wykład 3. Drzewa czerwono-czarne

Programowanie obiektowe

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Drzewa AVL definicje

Drzewo binarne BST. LABORKA Piotr Ciskowski

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Programowanie obiektowe

Drzewa wyszukiwań binarnych (BST)

Algorytmy i struktury danych

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Wstęp do programowania

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019

0-0000, , , itd

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

dr inż. Paweł Myszkowski Wykład nr 11 ( )

TEORETYCZNE PODSTAWY INFORMATYKI

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

Matematyka dyskretna - 7.Drzewa

TEORETYCZNE PODSTAWY INFORMATYKI

Wyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna

Algorytmy i struktury danych Struktury danych IS/IO, WIMiIP

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Algorytmy i Struktury Danych, 9. ćwiczenia

Algorytmy i Struktury Danych. (c) Marcin Sydow. Słownik. Tablica mieszająca. Słowniki. Słownik uporządkowany. Drzewo BST.

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

7. Teoria drzew - spinanie i przeszukiwanie

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Sortowanie - wybrane algorytmy

Ogólne wiadomości o grafach

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

Sortowanie. Bartman Jacek Algorytmy i struktury

Wykład 5. Sortowanie w czasie liniowologarytmicznym

Drzewa podstawowe poj

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

Kolejka Priorytetowa. Algorytmy i Struktury Danych. (c) Marcin Sydow. Kolejka priorytetowa. implementacja. Kopiec Binarny. Tablicowa.

PODSTAWY INFORMATYKI wykład 6.

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA. pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński

Transkrypt:

Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste

drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest nie większy niż 3, drzewo binarne może być ukorzenione, gdy jeden z wierzchołków nazwany jest korzeniem (jest wówczas stopnia 2, ma dwóch synów ),

drzewo binarne

drzewo binarne

drzewo BST BST Binary Search Tree binarne drzewo przeszukiwań, rodzaj drzewa binarnego, w lewej gałęzi znajdują się elementy mniejsze od rodzica a w prawej nie mniejsze od niego, każdy z węzłów (implementacyjnie) zna swoje dwoje dzieci, niekiedy też posiada informację o swoim (jednym) rodzicu, nie jest możliwe, aby drzewo posiadało dwa równe elementy (elementy muszą być unikalne).

drzewo BST przykładowe drzewo BST:

drzewo BST Zalety zastosowania BST: wyszukiwanie określonego elementu w średnim czasie O(logn) a pesymistycznym O(n). Zastosowania drzewa BST: różnego rodzaju słowniki, kolejki,

drzewo BST Można mówić o zrównoważeniu drzewa BST, gdy różnica w wysokości lewego i prawego poddrzewa jest nie większa niż 1, natomiast drzewo jest doskonale zrównoważone, gdy wszystkie liście znajdują się na co najwyżej dwóch poziomach.

drzewo BST przykład drzewa BST zrównoważonego:

drzewo BST przykład drzewa BST doskonale zrównoważonego:

algorytm DSW Algorytm DSW umożliwia zrównoważenie drzewa BST, został opracowany przez trzech panów: Colina Day'a, Quentina F. Stouta, oraz Better. L. Warrena stąd nazwa DSW, algorytm dwufazowy, wykorzystuje do działania operacje rotacji,

rotacja Zaraz wrócimy do algorytmu DSW ;) rotacja zmniejsza głębokość jednej ze stron poddrzewa, natomiast zwiększa głębokość drugiej strony poddrzewa, rotacja wykonywana jest w stałym czasie,

rotacja w prawo

rotacja w prawo

rotacja w prawo

rotacja w lewo

rotacja w lewo

rotacja w lewo

algorytm DSW I faza algorytmu: zamieniamy całe drzewo w listę powstaje wówczas drzewo, w którym węzły mają tylko dzieci po prawej stronie, wykonujemy wielokrotnie rotację w prawo między węzłem, który posiada lewe dziecko a tym właśnie dzieckiem, II faza algorytmu: wykonujemy rotację w lewo na co drugim elemencie powstałej listy,

algorytm DSW Przykład działania: http://webdiis.unizar.es/asignaturas/eda/avltree/a

drzewo AVL Drzewo BST, w którym wysokość lewego i prawego poddrzewa każdego węzła różni się co najwyżej o jeden nazwiemy drzewem AVL, AVL od Gieorgij Adelson-Wielskij i Jewgienij Łandis, czyli od nazwisk dwóch twórców drzewa, zastosowanie drzewa AVL (w porównaniu do tradycyjnego drzewa BST) daje nam pesymistyczny czas wyszukiwania elementu na poziomie 1,44(logn) w przypadku BST było to n.

drzewo AVL przykład drzewa BST, które nie jest AVL.

drzewo AVL drzewo z tymi samymi elementami, które ma własność AVL.

drzewo splay Struktura drzewiasta zachowująca własność drzewa BST, jest to struktura samodostosowująca się w czasie operacji wyszukiwania określonych elementów, wyszukiwany węzeł przesuwany jest w kierunku korzenia, dzięki czemu kolejne znalezienie tego samego elementu za drugim (kolejnym) razem jest znacznie szybsze.

drzewo splay po wykonaniu operacji wyszukiwania wywoływana jest procedura splay, która powoduje, że wyszukiwany wierzchołek staje się korzeniem drzewa, aby tego dokonać, wykonywane są w ramach splay trzy operacje: zig (gdy ojciec wyszukiwanego elementu jest korzeniem), zig-zig (gdy ojciec nie jest korzeniem a krawędź x-p i p-g są w jedną stronę) podwójna rotacja, zig-zag (gdy ojciec nie jest korzeniem a krawędź x-p i p-g są w dwie różne strony) dwie rotacje.

drzewo splay Przykład działania drzewa splay http://aleph0.clarku.edu/~achou/cs102/examples/bs

drzewo dwumianowe struktura drzewiasta zdefiniowana rekurencyjnie: drzewo stopnia 0 ma jeden węzeł (korzeń), drzewo stopnia k posiada węzeł (korzeń) oraz dzieci, które są drzewami dwumianowymi stopni (k-1), (k2)..., 0. drzewo dwumianowe stopnia k skonstruowane jest z dwóch drzew dwumianowych stopnia (k-1) poprzez połącznie ich w taki sposób, że jedno z nich jest skrajnym lewym dzieckiem drugiego.

drzewo dwumianowe Drzewo dwumianowe stopnia 0:

drzewo dwumianowe Drzewo dwumianowe stopnia 1:

drzewo dwumianowe Drzewo dwumianowe stopnia 2:

drzewo dwumianowe Drzewo dwumianowe stopnia 3:

drzewo dwumianowe Drzewo dwumianowe stopnia 4:

kopiec dwumianowy Kopiec dwumianowy to zbiór wielu drzew dwumianowych, w kopcu dwumianowym może wystąpić jeden stopień drzewa dwumianowego tylko jeden raz, każde drzewo dwumianowe w zbiorze zachowuje własność kopca (wartość węzła jest większa lub równa od wartości jego rodzica),

kopiec dwumianowy Znalezienie elementu najmniejszego w kopcu wykonuje się poprzez przejrzenie wszystkich korzeni drzew, łatwość stworzenia kopca powoduje, że kopiec ten jest często i chętnie wykorzystywany przy implementacji w porównaniu do innych kopców, do przechowania odpowiedniej ilości elementów stosuje się metodę zapisu binarnego.

kopiec dwumianowy przykładowy kopiec dwumianowy kopiec liczy 13 elementów = 8+4+1 = 1101B zawiera 1 lub 0 drzew d.m. o określonym rzędzie.

Pytania?