Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

AVL-Ağaçları (Trees). AVL Trees / Slide 2 Dengeli İkili Ağaç * İkili arama ağacının dezavantajı, yüksekliğin N-1 kadar olabilmesidir. * Bunun manası:

Benzer bir sunumlar


... konulu sunumlar: "AVL-Ağaçları (Trees). AVL Trees / Slide 2 Dengeli İkili Ağaç * İkili arama ağacının dezavantajı, yüksekliğin N-1 kadar olabilmesidir. * Bunun manası:"— Sunum transkripti:

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

2 AVL Trees / Slide 2 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)

3 AVL Trees / Slide 3 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.

4 AVL Trees / Slide 4 AVL Ağaçlar * AVL ağaç bir ikili ağaçtır ve aşağıdaki şartı sağlar n 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

5 AVL Trees / Slide 5 AVL Ağaç * x, yüksekliği h olan bir AVL ağacın kökü olsun. * N h, 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 N i ≥ N i-1 * Böylece * Genel form aşağıdaki gibi olur. * Sınır şartlar: N 1 =1 ve N 2 =2. Buradan h = O(log N h ) manası çıkarılır. * Böylece, AVL ağaç üzerinde yapılacak işlemlerin çoğu O(log N) zaman alır.

6 AVL Trees / Slide 6 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. x y A B C y x A B C Dönüşten önce Dönüşten sonra Örnek: Tek dönüş

7 AVL Trees / Slide 7 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.

8 AVL Trees / Slide 8 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.

9 AVL Trees / Slide 9 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. n 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üş 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üş

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

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

12 AVL Trees / Slide Ekle 0.8 AVL Tree x y A B C Dönüşten sonra

13 AVL Trees / Slide 13 Ç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

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

15 AVL Trees / Slide ekle 3.5 AVL Tree Dönüşten sonra x y Az B C 8

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

17 AVL Trees / Slide Şekil Şekil Şekil Şekil Şekil 11 Tek dönüş

18 AVL Trees / Slide Şekil Şekil Şekil 14 Çift dönüş

19 AVL Trees / Slide Şekil Şekil 15 Çift dönüş

20 AVL Trees / Slide 20 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.

21 AVL Trees / Slide 21 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) n Sol çocukla dönüşler için iki durum. n Sağ çocukla dönüşler için iki durum.

22 AVL Trees / Slide 22 Silme işlemindeki tek dönüşler Sol çocuk üzerinden dönüş 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.

23 AVL Trees / Slide 23 Silme işlemindeki tek dönüşler rotate with right child 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.

24 AVL Trees / Slide 24 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.


"AVL-Ağaçları (Trees). AVL Trees / Slide 2 Dengeli İkili Ağaç * İkili arama ağacının dezavantajı, yüksekliğin N-1 kadar olabilmesidir. * Bunun manası:" indir ppt

Benzer bir sunumlar


Google Reklamları