Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritmalar D ERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme October.

Benzer bir sunumlar


... konulu sunumlar: "Algoritmalar D ERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme October."— Sunum transkripti:

1 Algoritmalar D ERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.1

2 Dengeli arama ağaçları Dengeli arama ağacı: n elemanlı bir değişken kümede işlem yaparken O(lg n) yüksekliğinin garanti edildiği bir arama ağacı veri yapısı. AVL ağaçları 2-3 ağaçları ağaçları B-ağaçları Örnekler: Kırmızı-siyah ağaçlar October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.2

3 Kırmızı-siyah ağaçlar October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.3 Bu veri yapısının her düğümünde bir-bitlik renk alanına ihtiyaç vardır. Kırmızı-siyah özellikler: 1.Her düğüm ya kırmızı ya da siyahtır. 2.Kök ve yapraklar ( NIL ’ler yani sıfır'lar) siyahtır. 3.Eğer bir düğüm kırmızı ise, atası siyahtır. 4.Herhangi bir x düğümünden ardıl yaprağa giden basit yollarda aynı sayıda siyah düğüm vardır = black-height(x)yani siyah-yükseklik(x).

4 Bir kırmızı-siyah ağaç örneği h = 4h = 4 8 NILNILNILNIL NILNIL October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.4 NIL NILNIL

5 Bir kırmızı-siyah ağaç örneği 8 NILNILNILNIL NILNIL October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.5 NIL NILNIL 1. Her düğüm ya kırmızı ya siyahtır.

6 Bir kırmızı-siyah ağaç örneği 8 NILNILNILNIL NILNIL October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.6 NIL NILNIL 2. Kök ve yapraklar ( NIL ’ler) siyahtır.

7 Bir kırmızı-siyah ağaç örneği 8 NILNILNILNIL NILNIL October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.7 NIL NILNIL 3. Eğer bir düğüm kırmızı ise, atası siyahtır.

8 Bir kırmızı-siyah ağaç örneği NILNILNILNILNIL NILNIL October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.8 NIL bh = 2 bh = 1 bh = 0NIL bh = 1 bh = 2 4. Herhangi bir x düğümünden ardıl yaprağa giden basit yollarda aynı sayıda siyah düğüm vardır = siyah-yükseklik(x).

9 Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt.(Kitap tümevarımı kullanıyor. Dikkatle okuyun.) S EZGİ YÖNTEMİ : Kırmızı düğümleri siyah atalarına yaklaştırın. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.9

10 Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt.(Kitap tümevarımı kullanıyor. Dikkatle okuyun.) S EZGİ YÖNTEMİ : Kırmızı düğümleri siyah atalarına yaklaştırın. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.10

11 Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt.(Kitap tümevarımı kullanıyor. Dikkatle okuyun.) S EZGİ YÖNTEMİ : Kırmızı düğümleri siyah atalarına yaklaştırın. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.11

12 Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt.(Kitap tümevarımı kullanıyor. Dikkatle okuyun.) S EZGİ YÖNTEMİ : Kırmızı düğümleri siyah atalarıyla birleştirin. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.12

13 Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt.(Kitap tümevarımı kullanıyor. Dikkatle okuyun.) S EZGİ YÖNTEMİ : Kırmızı düğümleri siyah atalarıyla bütünleştirin. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.13

14 Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt.(Kitap tümevarımı kullanıyor. Dikkatle okuyun.) S EZGİ YÖNTEMİ : Kırmızı düğümleri siyah atalarıyla bütünleştirin. h′h′ October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.14 Bu işlem sonucunda oluşan ağacın her düğümünün 2, 3, ya da 4 ardılı olur ağacının yapraklarının derinliğih ′ tekbiçimlidir.

15 Kanıtlama (devamı) Elimizde h ′ ≥ h/2 olur, çünkü her yoldaki yaprakların en çok yarısı kırmızıdır. Her ağaçtaki yaprakların sayısı: n + 1 ⇒ n + 1 ≥ 2 h' ⇒ lg(n + 1) ≥ h' ≥ h/2 ⇒ h ≤ 2 lg(n + 1). h′h′ h October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.15

16 Sorgulama işlemleri October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.16 Corollary (Doğal sonuç).n düğümlü bir kırmızı-siyah ağaçta S EARCH (A RAMA ), M IN, M AX, S UCCESSOR (A RDIL ) ve P REDECESSOR (A TA ) sorgulamalarının hepsi O(lg n) süresinde çalışırlar.

17 Değiştirme işlemleri October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.17 I NSERT (A RAYA YERLEŞTİRME ) ve D ELETE (S İLME ) işlemleri kırmızı-siyah ağaçta değişime neden olur: işlemin kendi yapısı, renk değişimleri, ağacın bağlantılarının “rotations/rotasyonlar” yordamıyla yeniden yapılanması.

18 Rotasyonlar / Dönmeler A BBAABBAA αβ γαγα S AĞA -D ÖNME (B) B γβ S OLA -D ÖNME (A) Rotasyonlar anahtarların sıralı düzenini korurlar: a ∈ α, b ∈ β, c ∈ γ ⇒ a ≤ A ≤ b ≤ B ≤ c. Bir rotasyon O(1) sürede yapılabilir. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.18

19 Kırmızı-siyah ağaçta araya yerleştirme F İKİR : Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar taşıyın. Örnek: October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.19

20 Kırmızı-siyah ağaçta araya yerleştirme F İKİR : Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar taşıyın. Örnek: Ar.Yer. x =15. Yeniden renklendirin ve ihlali yukarıya taşıyın October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.20

21 Kırmızı-siyah ağaçta araya yerleştirme F İKİR : Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar taşıyın. Örnek: Ar.Yer. x =15. Yeniden renklendirin ve ihlali yukarıya taşıyın. S AĞA -D ÖNME (18) October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.21

22 Kırmızı-siyah ağaçta araya yerleştirme F İKİR : Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar götürün.7 Örnek: Ar.Yer. x =15. Yeniden renklendirin ve ihlali yukarıya taşıyın. S AĞA -D ÖNME (18) S OLA -D ÖNME (7) ve renklendirme. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.22

23 Kırmızı-siyah ağaçta araya yerleştirme F İKİR : Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzeltilene kadar götürün. Örnek: Ar.Yer. x =15. Yeniden renklendir, ihlali yukarıya taşı. S AĞA -D ÖNME (18) S OLA -D ÖNME (7) ve yeniden renklendirme. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.23

24 Pseudocode-Sözde kod (İngilizce) October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.24 RB-I NSERT (T, x) T REE -I NSERT (T, x) color[x] ← RED ⊳ only RB property 3 can be violated while x ≠ root[T] and color[p[x]] = RED do if p[x] = left[p[p[x]] then y ← right[p[p[x]] if color[y] = RED then 〈 Case 1 〉 elseif x = right[p[x]] then 〈 Case 2 〉 〈 Case 3 〉 ⊳ y = aunt/uncle of x ⊳ Case 2 falls into Case 3 else 〈 “then” clause with “left” and “right” swapped 〉 color[root[T]] ← BLACK

25 Grafik simgelem siyah kökü olan bir altağacı tanımlasın. ’ın tümünün siyah-yükseklikleri aynıdır. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.25

26 Durum 1 B C D A AAxAAx y B C yeni xD A Yen. renklendir October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.26 (veya, A'nın ardılları yer değiştirir.) C ’nin siyahını A ve D 'ye doğru itin ve özyineleme yapın, çünkü C’nin atası kırmızı olabilir.

27 Durum 2 B C A AAxAAx S OLA -D ÖNME (A) C yy B x A Durum 3'e dönüştürün. October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.27

28 Durum 3 Bitti!RB ( Kırmızı- siyah) 3. özelliğin ihlali artık mümkün değil. A C B x S AĞA -D ÖNME (C) y A October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.28 B C

29 Çözümleme Ağaçta yukarıya giderken Durum 1' i uygulayın; bu durumda sadece düğümler yeniden renklendirilir. Eğer Durum 2 veya 3 ile karşılaşırsanız, 1 ya da 2 rotasyon yapın ve işlemi sonlandırın. Yürütüm süresi: O(lg n) veO(1) rotasyon. RB-D ELETE ( KIRMIZI_SİYAH SİLME) — asimptotik koşma süresi ve rotasyonların sayısı RB-I NSERT (KIRMIZI-SİYAH ARAYA YERLEŞTİRME) ile aynıdır. (Kitaba bakınız.) October 19, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL7.29


"Algoritmalar D ERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme October." indir ppt

Benzer bir sunumlar


Google Reklamları