avl a a lar trees n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
AVL- Ağaçları (Trees) PowerPoint Presentation
Download Presentation
AVL- Ağaçları (Trees)

Loading in 2 Seconds...

play fullscreen
1 / 24

AVL- Ağaçları (Trees) - PowerPoint PPT Presentation


  • 248 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'AVL- Ağaçları (Trees)' - wolfe


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
dengeli kili a a
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
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 lar1
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
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

y

x

A

C

B

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üş

x

y

C

B

A

Dönüşten sonra

Dönüşten önce

d n ler
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
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
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
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 n1
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.

slide12

3

1

4

4

8

1

0.8

3

5

5

8

3

4

1

x

AVL Tree

5

C

y

8

B

A

0.8

Ekle 0.8

Dönüşten sonra

ift d n
Ç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 n1
Ç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

slide15

x

C

y

3

A

z

8

4

3.5

1

4

B

3.5

5

5

8

3

3

4

1

AVL Tree

5

8

ekle 3.5

Dönüşten sonra

1

geni letilmi rnek

2

2

2

3

3

4

4

2

1

1

2

1

3

3

Şekil 1

3

5

3

Şekil 4

Şekil 2

Şekil 3

1

Şekil5

Şekil 6

Genişletilmiş örnek

ekle 3,2,1,4,5,6,7, 16,15,14

Tek dönüş

Tek dönüş

slide17

2

4

2

4

4

Şekil 8

Şekil 7

6

5

5

7

6

3

7

3

3

1

2

2

1

2

5

4

6

4

5

6

Şekil 10

Şekil 9

5

Şekil 11

3

3

1

1

1

Tek dönüş

Tek dönüş

slide18

4

4

4

7

15

7

16

3

16

3

3

16

2

2

2

Şekil12

Şekil 13

15

6

6

6

5

7

Şekil 14

5

5

1

1

1

Çift dönüş

slide19

4

4

6

14

15

16

15

14

3

3

16

2

2

Şekil 15

Şekil 16

7

6

5

7

5

1

1

Çift dönüş

silme
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
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
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 ler1
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
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.