AVL-Ağaçları (Trees).

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Soru 1 CEVAP.
FONKSİYONLAR Hazırlayan:Ogün İçel.
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Saydığımızda 15 tane sayı olduğunu görürüz.
SINIFLANDIRMA VE REGRESYON AĞAÇLARI (CART)
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
ÜNİTE DEĞERLENDİRMESİ 1.Sınıf Türkçe
JEODEZİ I Doç.Dr. Ersoy ARSLAN.
MATEMATİK.
B+-Ağaçları.
Silme Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazı iç düğümlerde bir anahtar.
Silme Sil 12 Tek dönüş.
İkili Ağaçlar İkili Arama Ağaçları
Algoritmalar DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
4 Kare Problemi 4 Kare Problemi Hazır mısın? B A Bu şekle iyi bak
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
Tam İkili Ağaçlar 9. Ünite ağaçlardan bahseder.
MATEMATİKSEL PROGRAMLAMA
Birinci Dereceden Denklemler
Gece Yarısı Güneşi.
İkili Arama Ağaçları (Binary Search Trees) BST
Yarbaşı İlköğretim Yarbaşı İlköğretim.
4 KARE.
MATEMATİK 2. SINIF DOĞAL SAYILARDA TOPLAMA VE ÇIKARMA İŞLEMİ
ORHAN EREN İLKOKULU 1-A.
VERİ TABANI ve YÖNETİMİ
SAATLER Zamanı ölçmek için kullanılan ölçme aracı SAATTİR.
ARALARINDA ASAL SAYILAR
ZAMBAK 1 SORU BANKASI UĞUR CESUR 1 ZAMBAK 1 SORU BANKASI ÖZEL SORULARI Hazırlayan: UĞUR CESUR.
Binary Ağaçlar (Ekleme/Silme Örnekleri)
Problem Çözme Ve Problem Çözme Stratejileri Ödevi Cihan GÖÇ
TÜRKİYE İSTATİSTİK KURUMU İzmir Bölge Müdürlüğü 1/25.
Formül Hazırlama ve Kullanma
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Tam sayılarda bölme ve çarpma işlemi
TEST – 1.
HABTEKUS' HABTEKUS'08 3.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Microsoft EXCEL (2) Kapsam Kopyalama, Yapıştırma Açıklama Ekleme Satır ve Sütunların Boyutlandırılması Bitişik Hücrelere Dayanarak Otomatik Veri Girme.
8 ? E K S İ L E N EKSİLEN _ 5 5 ÇIKAN FARK(KALAN) 8.
Prof. Dr. Hüseyin BAŞLIGİL
Ek-2 Örnekler.
BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
EŞİTSİZLİK GRAFİKLERİ
TAM SAYILARLA İŞLEMLER
FONKSİYONLAR f : A B.
BÖLÜNEBİLME KURALLARI
DOĞAL SAYILAR VE TAM SAYILAR
AYNALARDA YANSIMA VE IŞIĞIN SOĞURULMASI
VERİ İŞLEME VERİ İŞLEME-4.
Chapter 11: Exception Handling
DERS 11 BELİRLİ İNTEGRAL (ALAN).
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
ÖZEL MÜZEYYEN ÇELEBİOĞLU İLK OKULU.
1/22 GEOMETRİ (Dikdörtgen) Aşağıdaki şekillerden hangisi dikdörtgendir? AB C D.
Eğer bir X t zaman serisi, E(X t ), ve X t ile X t+s arasındaki anakitle kovaryansı t’den bağımsız ise durağandır. 1 DURAĞAN SÜREÇ.
Partially Ordered Trees (POT)
Yard. Doç. Dr. Mustafa Akkol
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
TÜREV ve TÜREV UYGULAMALARI
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Ders 9: İkili arama ağaçları
Kelime (Text) İşleme Algoritmaları
Sunum transkripti:

AVL-Ağaçları (Trees)

Dengeli İkili Ağaç İkili arama ağacının dezavantajı, yüksekliğin N-1 kadar olabilmesidir. Bunun manası: Ekleme ve silme ve diğer bir çoğu işlem gerçekleştirilirken karmaşıklığın en kötü durumda O(N) olmasıdır. İstenen özellik ağacın yüksekliğinin küçük olmasıdır. N tane düğümü olan ikili ağacın yüksekliği en az (log N) ‘ dir. Bu nedenle, amaç ikili arama ağacının yüksekliğini O(log N) olarak tutabilmektir. Bu tür ağaçlara dengeli ikili ağaçlar denilir. Örnekler AVL ağaçlar, kırmızı-siyah ağaçlar (red-black tree)

AVL ağaçlar Bir düğümün yüksekliği Bir yaprağın yüksekliği 1’dir. Null işaretçinn yüksekliği sıfırdır. İç bir düğümün yüksekliği çocuklarının maksimum yüksekliğinin 1 fazlasıdır. Not: Burada yapılan yükseklik tanımı daha önce yapılandan farklıdır.

AVL Ağaçlar AVL ağaç bir ikili ağaçtır ve aşağıdaki şartı sağlar ağaçtaki herbir düğüm için, sol ve sağ altağaçların yükseklikleri en fazla 1 farklılık gösterir. AVL özelliği burada ihlal edilmiştir

AVL Ağaç x, yüksekliği h olan bir AVL ağacın kökü olsun. Nh , yüksekliği h olan bir AVL ağaçtaki düğümlerin minimum sayısını göstersin. Açıkça görülebilir ki Ni ≥ Ni-1 Böylece Genel form aşağıdaki gibi olur. Sınır şartlar: N1=1 ve N2 =2. Buradan h = O(log Nh) manası çıkarılır. Böylece, AVL ağaç üzerinde yapılacak işlemlerin çoğu O(log N) zaman alır.

Dönüşler (Rotations) Ağaç yapısı değiştiği zaman (ekleme veya silme gibi), AVL ağaç özelliğini sağlama için ağacı değiştirmeliyiz. Bu işlem tek dönüş veya çift dönüş yapılarak sağlanır. Örnek: Tek dönüş y x x A y B C C B A Dönüşten sonra Dönüşten önce

Dönüşler Ekleme/ silme işlemi tek bir düğüm ekleme ve silme içerdiği için, bazı altağaçların yüksekliği 1 kadar artabilir / azalabilir. Böylece, bir x düğümünde, AVL ağaç özelliği ihlal edildiği zaman, bunun manası of left(x) ve right(x) kesinlikle 2 birim fark ediyor demektir. AVL ağaç özelliğini korumak için x’ e dönüpler uygulanacaktır.

Ekleme (Insertion) Öncelikle, sıradan bir ikili ağaca ekleniyormuş gibi yeni anahtarı yeni bir yaprak olarak ekle Yeni yapraktan köke kadar olan yolu takip et. Karşılaşılan herbir x düğümü için left(x) ve right(x) ‘in en fazla 1 farklılık içerip içermediğini kontrol et. Evet ise parent(x) ile devam et. Değilse, ya bir tek dönüş yada bir çift dönüş ile Eklem için, x düğümünde bir dönüş gerçekleştirdikten sonra, x’ in geri kalan ata sında herhangi bir dönüp gerçekleştirilmesine gerek yoktur.

Ekleme X, left(x) ve right(x) değerlerinin birden fazla farklı olduğu yerde bir düğüm olsun. x in yüksekliğini h+3 olduğunu varsayalım Bu halde 4 durum oluşur. left(x) in yüksekliği h+2 (yani right(x) in yüksekliği h) left(left(x)) in yüksekliği h+1  sol çocuk ile (üzerinde) tek dönüş right(left(x)) in yüksekliği h+1  sol çocuk ile çift dönüş right(x) yüksekliği h+2 (yani left(x) in yüksekliği h) right(right(x)) in yüksekliği h+1  sağ çocuk ile (üzerinde) tek dönüş left(right(x)) in yüksekliği h+1  sağ çocuk ile (üzerinde) çift dönüş

Tek dönüş A altağacına yeni bir anahtar eklendi. x ‘ de AVL ağaç özelliği ihlal edildi. left(x) yüksekliği h+2 right(x) yüksekliği h.

Tek dönüş C altağacına yeni bir anahtar eklendi. x ‘ de AVL ağaç özelliği ihlal edildi. Tek dönüş O(1) kadar zaman alır. Ekleme O(log N) kadar zaman alır.

x AVL Tree C y 8 B A Ekle 0.8 3 5 Dönüşten sonra 5 5 8 3 3 4 1 4 1 0.8

Çift dönüş B1 veya B2 alt ağaçlarına yeni anahtar eklendi. x de AVL-özelliği ihlal edildi. x-y-z bir zig-zag şekli oluşturur Ayrıca sol-sağ dönüş olarak da isimlendirilir

Çift dönüş B1 veya B2 alt ağaçlarına yeni anahtar eklendi. x de AVL-özelliği ihlal edildi. Ayrıca sağ-sol dönüş olarak da isimlendirilir

x y A z B C AVL Tree 8 ekle 3.5 4 5 Dönüşten sonra 5 5 8 3 3 4 1 4 1

Genişletilmiş örnek ekle 3,2,1,4,5,6,7, 16,15,14 3 3 3 5 Tek dönüş Şekil 3 2 1 3 Şekil 4 3 2 Şekil 2 3 Şekil 1 2 1 3 4 Şekil 5 2 1 3 4 5 Şekil 6 Tek dönüş

5 Tek dönüş Şekil 10 6 2 1 4 5 3 Şekil 8 2 1 4 5 3 Şekil 7 Tek dönüş 4

4 2 6 7 1 3 5 16 Şekil 12 4 2 6 7 1 3 5 16 15 Şekil 13 Çift dönüş 4 2 6 15 1 3 5 16 7 Şekil 14

5 4 2 7 15 1 3 6 16 14 Şekil 16 4 2 6 15 1 3 5 16 7 14 Şekil 15 Çift dönüş

Silme Sıradan bir ikili ağaçta olduğu gibi x düğümünü sil. Daha sonra köke olan yol aşağıdaki gibi incelenir. Karşılaşılan herbir x düğümü için sol(x) (left(x)) ve sağ(x) (right(x)) altağaçlarının yükseklik farkının 1 olup olmadığına bak. Eğer fark 1 ise ebeveyn(x) üzerinden işleme devam et. Aksi takdirde x üzerinde gerekli dönüşleri yap. Eklemede olduğu gibi silmede de 4 durum vardır. Silme için, x’de dönüş yaptıktan sonra, x’in atalarında da (ancestor) dönüşler yapmamız gerekebilir. Bu işlemi köke ulaşana kadar uygularız.

Deletion Silme için tek dönüşler 4 duruma (iki durum yerine ) ayrılabilir. On closer examination: the single rotations for deletion can be divided into 4 cases (instead of 2 cases) Sol çocukla dönüşler için iki durum. Sağ çocukla dönüşler için iki durum.

Silme işlemindeki tek dönüşler Her iki şekilde de , altağaç C’den bir düğüm silimiştir ve yükseklihi h’ a düşürmüştür. y’nin yüksekliği h+2 ‘ dir. A’nın yüksekliği h+1 olduğu zaman, B’nin yüksekliği ya h’dır yada h+1’dir. Her iki durumu da aynı tek dönüş düzeltebilir. Sol çocuk üzerinden dönüş

Silme işlemindeki tek dönüşler Her iki şekilde de altağaaç A’dan bir düşüm silimiştir ve yükseklik h’ a düşmüştür. y’nin yüksekliği h+2’ dir. C’nin yüksekliği h+1 olduğu zaman, B’nin yükseklikliği h veya h+1 olabilir. Her iki durumu da tek dönüş düzeltebilir. rotate with right child

Silmedeki dönüşler Tek dönüş için 4 durum vardır fakat hepsini ayrı ayrı değerlendirmeye gerek olmayabilir. Çift dönüş için eklemede olduğu gibi 2 durum vardır. Dolayısı ile eklemede belirlendiği mantıkla silmede de hangi dönüşlerin gerçekleştirilebileceği belirlenebilir.