Top Banner
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği
16

YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

Aug 18, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

YZM 2116

Veri Yapıları

Yrd. Doç. Dr. Deniz KILINÇ

Celal Bayar Üniversitesi

Hasan Ferdi Turgutlu Teknoloji Fakültesi

Yazılım Mühendisliği

Page 2: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

2Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Heap Nedir?

• Aşağıdaki özelliklere sahip ikili ağaçtır:

– Özellik 1: Eksiksiz (complete) ikili ağaçtır.

– Özellik 2 (Heap özelliği): Ebeveyn (parent)

düğümün değeri her zaman çocukların değerinden

büyük (küçük) veya eşittir.

• Max Heap: Kök en büyük değere sahiptir.

• Min Heap: Kök en küçük değere sahiptir.

Page 3: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

3Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Eksiksiz İkili Ağaç (Complete Binary Tree)

• Son seviye dışındaki tüm seviyelerin tam (full)

olduğu ikili ağaç türüdür.

• Düğümleri sol taraftan (düğüme göre) doldurulur.

• Yeni bir derinliğe soldan sağa doğru ekleme

başlanır.

Page 4: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

4Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Max ve Min Heap

Max HeapMin Heap

Page 5: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

5Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Dizi Kullanarak İkili Ağaç Gerçekleştirimi

Cevap: Kök’ü 0’dan başlatarak, sol-sağ kolları her seviyede

dizi indisleri şeklinde arttırarak numaralayıp diziye atabiliriz.

Page 6: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

6Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Dizi Kullanarak İkili Ağaç Gerçekleştirimi (devam…)

• tree.nodes[index] düğümü ifade etmek üzere

• Parent-child ilişkisi:

– Sol çocuk = tree.nodes[2*index+1]

– Sağ çocuk = tree.nodes[2*index+2]

– Parent düğüm = tree.nodes[(index-1)/2]

• Yaprak düğümler:

– tree.nodes[numElements/2] - tree.nodes[numElements-1]

(tam sayı bölüm)

Page 7: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

7Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Uygulamayı indirip çalıştırın.…

http://www.kisa.link/5aUY

Page 8: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

• Adım 1: Yeni düğümü

seviye-seviye soldan-

sağa olacak şekilde ilk

uygun yere ekle.

19

4222127

23

45

35

42

Heap Insert(42)

Page 9: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

• Adım 2: Eklenen yeni

düğümü, ebeveyn ile

karşılaştırarak yukarı

doğru taşı.

• Adım 3: Uygun yer

bulana kadar Adım 2

tekrarla.

19

4222142

23

45

35

27

Heap Insert(42)

Page 10: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

19

4222135

23

45

42

27

Heap Insert(42)

• Adım 2: Eklenen yeni

düğümü, ebeveyn ile

karşılaştırarak yukarı

doğru taşı.

• Adım 3: Uygun yer

bulana kadar Adım 2

tekrarla.

Page 11: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

Max Elemanı Silme (RemoveMax)

19

4222135

23

45

42

27

• Adım 1: Son eleman

kök eleman yerine

taşınır.

• Örnekte, 27 elemanı

köke taşınır.

Page 12: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

19

4222135

23

27

42

Max Elemanı Silme (RemoveMax)

• Adım 1: Tamamlandı.

Ancak, Heap

özelliğinin tekrar

kurulması gerekiyor.

Page 13: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

19

4222135

23

27

42

Max Elemanı Silme (RemoveMax)

• Adım 2: Eklenen yeni

düğümü, büyük

çocuğu ile yer

değiştirecek şekilde

aşağıya doğru taşı.

Page 14: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

19

4222135

23

42

27

• Adım 2: Eklenen yeni

düğümü, büyük çocuğu

ile yer değiştirecek

şekilde aşağıya doğru

taşı.

• Adım 3: Adım 2’yi

tekrarla.

Max Elemanı Silme (RemoveMax)

Page 15: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

19

4222127

23

42

35

• Adım 2: Eklenen yeni

düğümü, büyük çocuğu

ile yer değiştirecek

şekilde aşağıya doğru

taşı.

• Adım 3: Adım 2’yi

tekrarla.

Max Elemanı Silme (RemoveMax)

Page 16: YZM 2116 Veri Yapıları - WordPress.com · Celal Bayar Üniversitesi –YZM 2116 Veri Yapıları 3 Eksiksiz İkili Ağaç (Complete Binary Tree) •Son seviye dışındakitüm seviyelerin

16

İYİ ÇALIŞMALAR…

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları