ALGORYTMY I STRUKTURY DANYCH

Podobne dokumenty
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

I. LOGICZNE STRUKTURY DRZEWIASTE

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

Edycja geometrii w Solid Edge ST

Moduł Pulpit opcji oraz Narzędzia. Opis v 1.0

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

Bazy danych. Andrzej Łachwa, UJ, /15

Harmonogramowanie projektów Zarządzanie czasem

Lista 6 wskaźników szkód (amerykańskie poprzedzone literą A, kanadyjskie poprzedzone literą C )

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Regulamin Egzaminów i Zawodów Psów Towarzyszących 1,2,3 stopnia 2010 (po korekcie 20.10)

NUMER IDENTYFIKATORA:

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel

W. Guzicki Zadanie 23 z Informatora Maturalnego poziom rozszerzony 1

Jak spersonalizować wygląd bloga?

Koszty bezpośrednie rozliczane w ramach PO KL

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

Technikum w ZSP Żelechów ponownie najlepsze

Projekty uchwał dla Zwyczajnego Walnego Zgromadzenia

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

ZAPYTANIE OFERTOWE PRZEDMIOT ZAMÓWIENIA: DOSTAWA UŻYWANEGO SAMOCHODU DOSTAWCZEGO DLA ZAKŁADU WODOCIĄGÓW I KANALIZACJI W PACZKOWIE

Algorytmy graficzne. Podstawy kompresji danych fragment wykładu. Marcin Wilczewski

Kurs wyrównawczy dla kandydatów i studentów UTP

7. REZONANS W OBWODACH ELEKTRYCZNYCH

Użytkowanie elektronicznego dziennika UONET PLUS.

Kratownice Wieża Eiffel a

Regulamin w konkurencjach solowych

DEMERO Automation Systems

Media Organizer v1.0b

Rekompensowanie pracy w godzinach nadliczbowych

KARTY PRACY UCZNIA. Twierdzenie Pitagorasa i jego zastosowanie. samodzielnej pracy ucznia. Zawarte w nich treści są ułożone w taki sposób,

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Drabiny pionowe jednoelementowe

Zadania. SiOD Cwiczenie 1 ;

Matematyka:Matematyka I - ćwiczenia/granice funkcji

Nowe funkcjonalności

cennik usługi Centrala DIATONIS

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

1. Rozwiązać układ równań { x 2 = 2y 1

Wykład 3. Drzewa czerwono-czarne

Wskaźniki oparte na wolumenie

SZCZEGÓŁOWA SPECYFIKACJA TECHNICZNA

RZECZPOSPOLITA POLSKA. Prezydent Miasta na Prawach Powiatu Zarząd Powiatu. wszystkie

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska

XIII KONKURS MATEMATYCZNY

UCHWAŁA NR VIII/43/2015 r. RADY MIASTA SULEJÓWEK z dnia 26 marca 2015 r.

SPECYFIKACJA TECHNICZNA WYKONANIA I ODBIORU ROBÓT BUDOWLANYCH ROBOTY W ZAKRESIE STOLARKI BUDOWLANEJ

Zarządzanie Zasobami by CTI. Instrukcja

Zadania z parametrem

Warszawska Giełda Towarowa S.A.

Zadanie 3 - (7 punktów) Iloczyn składników Jeśli zapis liczby 22 w postaci sumy zawiera składnik 1, lepiej pogrupować go z innym składnikiem

Archiwum Prac Dyplomowych

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Efektywność nauczania w Gimnazjum w Lutyni

Projektowanie bazy danych

Zakres pomiaru (Ω) Rozdzielczość (Ω) Dokładność pomiaru

II. WNIOSKI I UZASADNIENIA: 1. Proponujemy wprowadzić w Rekomendacji nr 6 także rozwiązania dotyczące sytuacji, w których:

WordPad. Czyli mój pierwszy edytor tekstu

ROZWIĄZANIA ZADAŃ Zestaw P3 Odpowiedzi do zadań zamkniętych

TEORIA GIER W EKONOMII WYKŁAD 1: GRY W POSTACI EKSTENSYWNEJ I NORMALNEJ

Regulamin Pracy Komisji Rekrutacyjnej w Publicznym Przedszkolu Nr 5 w Kozienicach

- 70% wg starych zasad i 30% wg nowych zasad dla osób, które. - 55% wg starych zasad i 45% wg nowych zasad dla osób, które

Logowanie do systemu Faktura elektroniczna

1. Podstawy budowania wyra e regularnych (Regex)

1 Granice funkcji. Definicja 1 (Granica w sensie Cauchy ego). Mówimy, że liczba g jest granicą funkcji f(x) w punkcie x = a, co zapisujemy.

OBCIĄŻENIE WIATREM WYBRANYCH POŁACI DACHOWYCH

Prosimy o przesyłanie WSZYSTKICH reklam na następujący adres:

Urządzenia do bezprzerwowego zasilania UPS CES GX RACK. 10 kva. Wersja U/CES_GXR_10.0/J/v01. Praca równoległa

PROGRAM ZAPEWNIENIA I POPRAWY JAKOŚCI AUDYTU WEWNĘTRZNEGO

Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows.

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Rybacka Bielska Kraina Postanowienia Ogólne

INSTRUKCJA Panel administracyjny

PROCEDURA OCENY RYZYKA ZAWODOWEGO. w Urzędzie Gminy Mściwojów

KONKURSY MATEMATYCZNE. Treść zadań

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

NACZYNIE WZBIORCZE INSTRUKCJA OBSŁUGI INSTRUKCJA INSTALOWANIA

1. Od kiedy i gdzie należy złożyć wniosek?

z dnia Rozdział 1 Przepisy ogólne

Promocja i identyfikacja wizualna projektów współfinansowanych ze środków Europejskiego Funduszu Społecznego

API transakcyjne BitMarket.pl

Regulamin rekrutacji w projekcie,,grupa PoMocowa SENIORÓW - usługi społeczne osób starszych dla osób starszych

Praca za granicą. Emerytura polska czy zagraniczna?

Zagospodarowanie magazynu

PLACÓWKI OPIEKI NAD DZIEĆMI

Formularz Fair Play sezon 2009/2010 III liga. Stadion/Miejsce zawodów Data Godzina meczu Rezultat OCENA

INSTRUMEWNTY FINANSOWE umożliwiające pomoc rolnikom w usuwaniu skutków niekorzystnych zjawisk atmosferycznych

Techniki korekcyjne wykorzystywane w metodzie kinesiotapingu

DE-WZP JJ.3 Warszawa,

Ogólna charakterystyka kontraktów terminowych

Metody wyceny zasobów, źródła informacji o kosztach jednostkowych

Umowa najmu lokalu użytkowego

Wtedy wystarczy wybrać właściwego Taga z listy.

Programowanie obrabiarek CNC. Nr H8

Prezentacja Systemu PDR

INFORMACJA Z KONTROLI PRAWIDŁOWOŚCI ETYKIETOWANIA OPON POD KĄTEM EFEKTYWNOŚCI PALIWOWEJ I INNYCH ZASADNICZYCH PARAMETRÓW

ZARZĄDZENIE nr 1/2016 REKTORA WYŻSZEJ SZKOŁY EKOLOGII I ZARZĄDZANIA W WARSZAWIE z dnia r.

Regulamin Walnego Zebrania Członków Polskiego Towarzystwa Medycyny Sportowej

Transkrypt:

ALGORYTMY I TRUKTURY DANYCH Temat 7: Drzewa czerwono-czarne czarne Wykładowca: dr inż. Zbigniew TARAATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu są: A.Najgebauer, D.ierzchała Wykład : Algorytmy przetwarzania struktur drzewiastych drzewa czerwono czarne; 2

Drzewa czerwono czarne (r-b) Drzewo czerwono czarne r-b (1): Drzewo czerwono czarne (r-b) jest kolejnym rozwinięciem drzewa BT; owstało w celu przyspieszenia operacji przez odpowiednią organizację węzłów w drzewie; Dzięki zastosowanym metodom równoważenia pesymistyczna złożoność operacji wynosi O(lg n); Drzewo r-b powstaje przez rozszerzenie węzła drzewa BT o pole koloru {czerwony, czarny}; 3 Drzewa czerwono czarne (r-b) Drzewo czerwono czarne r-b (2): W drzewie r-b: Wszystkie wskazania NULL traktujemy jako wskazania na zewnętrzne węzły drzewa liście; Zwyczajne węzły drzewa r-b (zawierające klucze) nazywamy wewnętrznymi węzłami drzewa; rzyjmuje się następujące założenia: (1) Każdy węzeł ma kolor czerwony lub czarny; (2) Korzeń ma kolor czarny; (3) Każdy wskaźnik o wartości NULL ma kolor czarny; (4) Jeżeli węzeł ma atrybut czerwony, to jego potomkowie są koloru czarnego; (5) Dla każdego węzła każda prosta ścieżka od węzła do liścia zawiera jednakową liczbę węzłów czarnych; 4

Drzewa czerwono czarne Drzewo czerwono czarne (3): Wysokość węzła: h(x) największa liczba węzłów na drodze prostej z węzła x do liści; Czarna wysokość węzła: bh(x) liczba węzłów czarnych (z uwzględnieniem NULL) na drodze od tego węzła do liścia (z wykluczeniem tego węzła); Czarna wysokość drzewa r-b czarna wysokość korzenia danego drzewa; 5 Drzewa czerwono czarne Drzewo czerwono czarne (3): rzykład drzewa: bh=2 bh=2 bh=2 bh=1 bh=1 6

Drzewa czerwono czarne Twierdzenia dotyczące drzewa czerwono czarnego (1): Lemat 1 Każde poddrzewo r-b o korzeniu w dowolnym x posiada co najmniej n = 2 bh(x) 1wewnętrznych węzłów. Dowód: Krok indukcyjny rzez indukcję względem wysokości węzła x: Jeżeli x ma wysokość 0, to x musi być liściem (NULL) a poddrzewo o korzeniu w x zawiera 2 bh(x) -1=2 0-1=0 węzłów; Niech x będzie węzłem wewnętrznym o dodatniej wysokości i dwóch potomkach. Każdy ma czarną wysokość równą bh(x) albo bh(x)-1 (zależnie od koloru); Wysokość potomka jest mniejsza od wysokości węzła, więc każde z poddrzew o korzeniach w potomkach x ma ma co najmniej 2 bh(x)-1-1 węzłów wewnętrznych; Zatem drzewo o korzeniu x ma: (2 bh(x)-1-1)+(2 bh(x)-1-1)+1 = 2 bh(x) -1. 7 Drzewa czerwono czarne Twierdzenia dotyczące drzewa czerwono czarnego (2): Lemat 2 Każdy węzeł x o wysokości h(x) ma czarną wysokość równą bh(x) h(x) / 2. Dowód Z założenia 4 wynika, że co najwyżej h(x) / 2 węzłów na drodze z węzła do liścia jest czerwona; Zatem co najmniej h(x) / 2 węzłów jest czarna; Inaczej: czarna wysokość węzła wynosi co najmniej h(x)/2; 8

Drzewa czerwono czarne Twierdzenia dotyczące drzewa czerwono czarnego (3): Lemat 3 Drzewo r-b o n węzłach wewnętrznych ma wysokość nie większą niż 2 lg(n+1). Dowód: Niech h(x) będzie wysokością drzewa o korzeniu x. Z lematu 2: bh(x) h(x)/2 Z lematu 1: n 2 bh(x) -1 Zatem: n 2 h(x) / 2 1 n + 1 >= 2 h(x) / 2 lg(n + 1) h(x) / 2 2lg(n + 1) h(x). 9 Wyszukanie, minimum, maksimum, następnik, poprzednik: ponieważ drzewo tego typu jest drzewem BT, te operacje wyglądają tak, jak dla drzew BT; złożoność operacji: dla BT: O(h); dla r-b: O(lg n); Wstawianie, usuwanie: te operacje ulegają zmianom; dlaczego? 10

Wstawianie: Wstawienie analogiczne do operacji w drzewie BT; Korekta: wyróżniamy dwa podejścia: Bottom Up oraz Top-down ; Jaki kolor nadać wstawianemu węzłowi? Czerwony (?): Może zostać zaburzone założenie 4: Czarny (?): Jeżeli węzeł ma atrybut czerwony, to jego potomkowie są koloru czarnego; Może zostać zaburzone założenie 5: Dla każdego węzła każda ścieżka od węzła do liści zawiera jednakową liczbę węzłów czarnych; 11 Wstawianie Bottom Up (1): Wstaw węzeł; okoloruj węzeł na czerwono ( wskazuje na nowy węzeł); Możliwe przypadki: 0: to korzeń koloruj na czarno; 1: Zarówno przodek (ojciec) jak i bezpośredni sąsiad przodka (wuj) są czerwone; 2 (zig-zag): rzodek jest czerwony, ale wuj jest czarny; onadto i ojciec są synami po przeciwnych stronach; 3 (zig-zig): rzodek jest czerwony, ale wuj jest czarny; onadto i ojciec są albo lewymi albo prawymi synami; 12

Wstawianie Bottom Up przypadek 1 (1) (1): Zarówno przodek (ojciec) jak i bezpośredni sąsiad przodka (wuj) są czerwone Korekta: koloruj przodka i jego sąsiada (wuja) na czarno; koloruj przodka przodka (dziadka) na czerwono; wskaż na przodka przodka (dziadka); 13 Wstawianie Bottom Up przypadek 1 (2) G - przekolorowanie; - przemieszczenie wskaźnika; U jest czerwony G U U 14

Wstawianie Bottom Up przypadek 2: Zig-Zag (1) (2) Zig-Zag: rzodek jest czerwony, ale wuj jest czarny; onadto i ojciec są synami po przeciwnych stronach; Korekta: wykonaj rotację w lewo wokół ojca; wykonaj rotację w prawo wokół dziadka; koloruj dziadka na kolor czerwony; koloruj na czarno; 15 Wstawianie Bottom Up przypadek 2: Zig-Zag (2) G U G - podwójna rotacja: - wokół, - wokół G; - przekolorowanie G i ; U 16

Wstawianie Bottom Up przypadek 3: Zig-Zag (1) (3) Zig-Zag: rzodek jest czerwony, ale wuj jest czarny; onadto i ojciec są albo lewymi albo prawymi synami Korekta: wykonaj rotację w prawo wokół dziadka; koloruj ojca i dziadka na kolor czarny; 17 Wstawianie Bottom Up przypadek 3: Zig-Zag (2) G U G - rotacja wokół G; - przekolorowanie i G; U Ten przypadek zachodzi w drugim kroku przypadku 2; 18

Wstawianie Bottom Up przykład (1): 11 2 1 7 14 15 Czy potrafisz wstawić węzeł z wartością 4? 5 8 19 Wstawianie Bottom Up przykład (2): 11 o wstawieniu węzła 4: - Węzeł x i przodek są koloru czerwonego; - Mamy przypadek 1; -Zatem należy przekolorować węzły i przesunąć wskaźnik x; 2 1 7 5 8 14 15 4 20

Wstawianie Bottom Up przykład (3): 11 - onownie węzeł x i przodek są koloru czerwonego; - tryj y węzła x jest czarny a x jest prawym synem; - Mamy przypadek 2; - Zatem należy dokonać podwójnej rotacji x i przekolorować węzły; 2 1 7 4 Y 5 8 14 15 21 Wstawianie Bottom Up przykład (4): 11 -o wykonaniu lewej rotacji x względem 2; 2 7 8 Y 14 15 1 5 4 22

Wstawianie Bottom Up przykład (5): -o wykonaniu prawej rotacji x względem 11; 2 1 5 7 8 11 Y 14 4 15 23 Wstawianie Bottom Up przykład (6): -o przekolorowaniu x i 11; -Drzewo teraz jest poprawnym drzewem r-b; 2 1 5 7 8 11 Y 14 4 15 24

Wstawianie Bottom Up algorytm korekty: rzypadek (1) rzypadek (2) rzypadek (3) 25 Usuwanie: Jakie zmiany wywołuje usunięcie węzła? Czerwonego: Czarne wysokości węzłów nie zmieniają się; onadto usuwany węzeł nie mógł być korzeniem, bo był koloru czerwonego; Czarnego: Ścieżki z usuwanym węzłem mają o jeden węzeł czarny mniej: złamanie założeń 4 i 5; Jeżeli usuwany węzeł był korzeniem, może zastąpić go potomek koloru czerwonego: złamanie zasady 2; 26

Usuwanie Bottom-Up : Usuwanie analogiczne do operacji w drzewie BT; Korekta przy usuwaniu węzła czarnego: Założenia: U węzeł usuwany; węzeł, który zastępuje U; przodek węzła ; sąsiad (brat) węzła ; wskazuje węzeł z nadmiarowym kolorem czarnym; rzypadki: (1) jest koloru czerwonego; (2) jest koloru czarnego oraz ma dwóch czarnych potomków; (3) jest koloru czarnego a prawy potomek koloru czerwonego; (4) jest koloru czarnego, prawy potomek koloru czarnego a lewy koloru czerwonego; 27 Usuwanie Bottom-Up przypadek 1 (1): (1) jest koloru czerwonego; Korekta: Rotacja wokół ; rzekolorowanie i ; Uwaga to nie jest stan końcowy; Wystąpi jeden z przypadków (2) (4); 28

Usuwanie Bottom-Up przypadek 1 (2): rotacja przekolorowanie 29 Usuwanie Bottom-Up przypadek 2 (1): (2) jest koloru czarnego oraz ma dwóch czarnych potomków; Korekta: rzekolorowanie na czerwono; Jeżeli jest koloru czerwonego bez zmian; Jeżeli jest czarne kolor musi być propagowany w drzewie w kierunku korzenia; Korekta musi być rekurencyjnie powtarzana aż do wyprowadzenia koloru nadmiarowego z drzewa; 30

Czerwony lub czarny Usuwanie Bottom-Up przypadek 2 (2): (2) jest koloru czarnego oraz ma dwóch czarnych potomków; przekolorowanie Jeżeli czarny propagowanie w górę koloru; 31 Usuwanie Bottom-Up przypadek 3 (1): (3) jest koloru czarnego a prawy potomek koloru czerwonego (lewy dowolnego); Korekta: Rotacja wokół ; Zamiana kolorów i ; rzekoloruj prawego potomka na czarno; rzypadek końcowy! 32

Usuwanie Bottom-Up przypadek 3 (2): (3) jest koloru czarnego a prawy potomek koloru czerwonego; rotacja przekolorowanie 33 Usuwanie Bottom-Up przypadek 4 (1): (4) jest koloru czarnego, prawy potomek koloru czarnego a lewy koloru czerwonego; Korekta: Rotacja lewego potomka wokół ; Zamiana kolorów i lewego potomka ; Teraz stan zgodny z przypadkiem 3; 34

Usuwanie Bottom-Up przypadek 4 (2): (4) jest koloru czarnego, prawy potomek koloru czarnego a lewy koloru czerwonego; rotacja przekolorowanie 35 Usuwanie Bottom-Up algorytm korekty: rzypadek (1) rzypadek (2) rzypadek (3) rzypadek (1) 36

Dziękuję za uwagę