SlideShare a Scribd company logo
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
BÖLÜM - 6
Bu bölümde,
• Ağaç (Tree) Veri Yapısı Giriş
• Ağaç VY Temel Kavramlar
• İkili Ağaç (Binary Tree)
• İkili Ağaç Özellikleri
• İkili Ağaç Gerçekleştirim
• İkili Ağaç Üzerinde Gezinme (Traverse)
• Preorder, Inorder, Postorder
• İkili Ağaç Gerçekleştirimine Dair Sorular
konusuna değinilecektir.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
3Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş
gibi sanal olarak bağlanmasıyla elde edilen hiyerarşik
yapıya sahip veri yapısıdır.
• Aynı aile soyağacında olduğu gibi hiyerarşik bir yapısı
vardır ve orada geçen birçok kavram buradaki ağaç
veri yapısında da tanımlıdır.
• Örneğin çocuk, kardeş düğüm, aile, ata gibi birçok
kavram ağaç veri yapısında da kullanılır.
• Her biri değişik bir uygulamaya doğal çözüm olan ikili
ağaç, kodlama ağacı, sözlük ağacı, kümeleme ağacı
gibi çeşitli ağaç şekilleri vardır; üstelik uygulamaya
yönelik özel ağaç şekilleri de çıkarılabilir.
Ağaç VY Giriş
4Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear)
veri yapılarıdır.
• Ağaçlar ise doğrusal olmayan belirli niteliklere sahip
iki boyutlu veri yapılarıdır.
• Ağaçlar hiyerarşik ilişkileri göstermek için kullanılır.
• Her ağaç düğümlerden (node) ve kenarlardan (edge)
oluşur.
• Her düğüm bir nesneyi gösterir.
• Her kenar (bağlantı) iki node arasındaki ilişkiyi
gösterir.
• Arama işlemi bağlı listelere göre çok hızlı yapılır.
Ağaç VY Giriş (devam…)
5Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaç VY Giriş (devam…)
• Ağacın düğümlerindeki bilgiler sayılardan oluşmuştur. Her
düğümdeki sol ve sağ bağlar yardımı ile diğer düğümlere ulaşılır.
Sol ve sağ bağlar NULL olabilir.
• Düğüm yapıları değişik türlerde bilgiler içeren veya birden fazla bilgi
içeren ağaçlar da olabilir.
6Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Ağaç veri yapısı / modeli aşağıdaki yazılım
uygulamalarında kullanılırlar:
o İşletim sisteminin dosya sistemini modellemekte
o Oyunlar için farklı hamleleri ele almakta
o Ağ routing (yönlendirme) algoritmalarında
o Trie adı verilen VY ile sözlük oluşturmakta ve
dinamik yazım kontrolü gibi alanlarda
o Huffman sıkıştırma kodlamasında ve
o Derleyicilerde matematiksel ifadeleri modellemede
kullanılırlar.
Ağaç VY Kullanılan Yazılım Uygulamaları
7Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Örnek Ağaç Yapısı – Dosya Sistemi
/yazilim
kitaplar kodlar dersler
yzm219 yzm112 ...
1.pdf 2.pdf 1.pdf
2015-2016 eskia.java b.java
yzm2116 yzm317 yzm215 ...
1.ppt 1.doc 1.Pdf
8Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Örnek Ağaç Yapısı – Şirket Organizasyonu
9Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaç VY Temel Kavramlar
Level - Seviye
0
1
2
3
A
B C
D E F
G
Kök (root)
Yaprak
Düğüm
Aile / Ara
Düğüm
Yaprak
Düğüm
7 düğümlü ağaç
Çocuk Düğümler
• A düğümü kök olmak
üzere 7 düğümden (n)
oluşmaktadır.
• Toplam 6 kenar (n-1)
vardır.
• Sol alt ağaç, B kökü
ile başlamakta ve sağ
alt ağaç da C kökü ile
başlamaktadır.
• A’dan solda B’ye giden
ve sağda C'ye giden iki
dal (branch)
çıkmaktadır.
10Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaç VY Temel Kavramlar (devam…)
• Düğüm (Node): Ağacın her elemanına verilen isim.
• Kök (Root): Ağacın başlangıç düğümüdür.
• Çocuk (Child): Bir düğüme doğrudan bağlı olan
düğümlere o çocukları denilir.
• Kardeş Düğüm (Sibling): Aynı düğüme bağlı düğümlere
kardeş düğüm veya kısaca kardeş denir.
• Aile (Parent): Düğümlerin doğrudan bağlı oldukları
düğüm aile olarak adlandırılır; diğer bir deyişle aile,
kardeşlerin bağlı olduğu düğümdür.
• Ata (Ancestor): Aile düğümünün daha üstünde kalan
düğümlere denir.
• Torun (Dedscendant): Bir düğümün çocuğuna bağlı olan
düğümlere denir.
11Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaç VY Temel Kavramlar (devam…)
• Yaprak (Leaf): Ağacın en altında bulunan ve çocukları
olmayan düğümlerdir.
• Derece (Degree): Bir düğümden alt hiyerarşiye yapılan
bağlantıların sayısıdır; yani çocuk veya alt ağaç sayısıdır.
• Seviye (Level): Hiyerarşik sıradır (rank). Kök düğüm seviye
= 0.
• Derinlik (Depth): Bir düğümün köke olan uzaklığı
derinliktir. Kök düğüm derinlik = 0.
• Yükseklik (Height): Bir düğümün kendi silsilesinden en
uzak yaprak düğüme olan uzaklığıdır. Yaprak düğümlerin
yükseliği = 0. (Kök yüksekliği = Ağaç Yükesekliği)
• Yol (Path): Bir düğümün aşağıya doğru (çocukları üzerinden)
bir başka düğüme gidebilmek için üzerinden geçilmesi
gereken düğümlerin listesidir.
12Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaç VY Temel Kavramlar (devam…)
A
B C
D E F
G
Kök (Root) Tanım Kök B D
Çocuk/Derece 2 0 0
Kardeş 1 2 3
Seviye 0 1 2
Aile yok Kök C
Ata yok yok Kök
Yol A A, B A,C,D
Derinlik 0 1 2
Yükseklik 3 0 0
13Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaç VY Temel Kavramlar (devam…)
Düğüm sayısı:
Yükseklik:
Kök düğüm:
Yapraklar:
Seviye sayısı:
H'nin ataları:
B'nin torunları:
E'nin kardeşleri:
9
4
A
C, D, F, H, I
4
E, B, A
G, H, I
D, F
14Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Ağaçlara Özyinelemeli Yaklaşım
• Rekürsif mantıkla bir ağaç, bir kök (root) ve alt-ağaçlar
şeklinde tanımlanır.
• 1 düğümü  2 ve 3 alt-ağaçlarından oluşur
• 2 düğümü  4,6 ve 5 (5-9-10) olmak üzere üç alt-ağaçtan
oluşur.
15Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç (Binary Tree)
16Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç (Binary Tree)
• Her düğümün en fazla iki çocuk düğüme sahip olduğu
ağaç yapısına BT denir.
• BT, bilgisayar bilimlerinde en çok kullanılan ağaç
veri yapılarından olup, sıralı olması durumunda
arama, ekleme ve silme işlemlerini çabuklaştırırlar.
• Bir BT
o Boş tek bir düğümden oluşabileceği gibi,
o Sol alt ağaç ve sağ alt ağaç olmak üzere köke ait iki adet
ikili ağaçtan da oluşabilir.
• BT için gerek şart ilgili BT düğümünün en fazla iki
çocuğa (alt ağaca) sahip olabileceğidir.
17Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç (Binary Tree) (devam…)
A
C D
Z I
K
Kök
P
M
Sağ alt ağaç
A
B
A
B
İki farklı ikili ağaç
18Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Katı İkili Ağaç (Strict Binary Tree)
• Yaprak düğümler haricindeki tüm düğümler sıfır veya
iki çocuğa sahip ise katı ikili ağaç olarak adlandırılır.
Katı İkili AğaçKatı Olmayan İkili Ağaç
19Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Tam İkili Ağaç (Full Binary Tree)
• Her bir düğümün (i)net olarak iki çocuk düğüme
sahip olduğu ve (ii)yaprak düğümlerin aynı
seviyede olduğu iki ağaçtır.
• Her düğüm eşit şekilde sağ ve sol alt-ağaçlara
sahiptir.
20Celal 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.
21Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Eksiksiz İkili Ağaç (Complete Binary Tree)
• Aşağıdaki örnekler, eksiksiz ikili ağaç kriterlerine
uyuyor mu?
22Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Özellikleri – Özellik 1
• Her k seviyesinde, maksimum düğüm sayısı 2k dır.
• Kök düğümde k=0 olduğu için düğüm sayısı 1 olurken,
• k=2 için maksimum düğüm sayısı 4 olur.
23Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Özellikleri – Özellik 2
• h yüksekliğindeki ikili ağacın maksimum düğüm sayısı =
2h+1 - 1 olarak hesaplanır.
• Aşağıdaki ağaç için h = 3 olduğundan maksimum düğüm
sayısı 16 – 1 = 15 bulunur.
24Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Özellikleri – Özellik 3
• h yüksekliğindeki ikili ağacın
o minimum düğüm sayısı = h + 1 olarak hesaplanır.
• Kök düğümün h = 0 da olduğuna dikkat ediniz.
A
C
P
P
A
C
P
P
25Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Özellikleri – Özellik 4
• En az iki düğüme sahip, n elemanlı bir ikili ağaçta,
kenar sayısı = (n - 1) olarak hesaplanır.
• Aşağıdaki örneklerde 4’er düğüm ve 3’er kenar
mevcuttur.
A
C
P
P
A
C
P
P
26Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Özellikleri – Özellik 5
• n yaprak düğüme sahip, eksiksiz bir ikili ağaçta
(complete), kenar sayısı (k) = 2(n-1)’dir.
27Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Gerçekleştirimi
• İki türlü gerçekleştirimi mümkündür:
o Dizi kullanarak
o Bağlı liste kullanarak
28Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Bağlı Liste İkili Ağaç Gerçekleştirimi
29Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Bağlı Liste İkili Ağaç Gerçekleştirimi (devam…)
4
6 12
45 7
kök
1
30Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Bağlı Liste İkili Ağaç Gerçekleştirimi (devam…)
4
6 12
45 7
kök
1
• Soru: Kökten itibaren düğümleri elimizde olan ikili
ağaç üzerinde nasıl dolaşırız?
31Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Üzerinde Gezinme (Traverse)
• Bir ağacı bir düğüme sadece bir defa uğrayacak
şekilde gezmeye gezinme/geçiş denir.
• Gezinme, ağacın sakladığı bilgi türüne göre bir bilgiye
ulaşma, listeleme ve başka amaçlarla gerçekleştirilir.
• Doğrusal veri yapılarında baştan sona doğru
dolaşmak kolaydır.
• Ağaçlar ise düğümleri doğrusal olmayan veri
yapılarıdır. Bu nedenle farklı algoritmalar uygulanır.
• Örneğin; düğümlerin matematiksel operatörler ve
oparandlar olduğu bir ikili ağacın gezinme işlemi,
infix-postfix gibi bir notasyonu elde etmemizi sağlar.
32Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Üzerinde Gezinme (devam…)
• İkili ağacın üzerinde gezinilmesi sırasında
bağımsız olarak 3 grup ikili ağaç parçasının
1. Kök
2. Sol alt ağaç
3. Sağ alt ağaç
değişik sıralarda gezilmesiyle ile gerçekleşir.
33Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Üzerinde Gezinme (devam…)
• İkili ağaç üzerinde dolaşmak için 3 temel yol
vardır. Bunlar:
• Önce-kök/ziyaret (Preorder - NLR):
 Kök/ziyaret, Sol, Sağ
Önce kök, sonra sol alt ağaç ve ardından sağ alt ağaç
• Ortada-kök/ziyaret (Inorder - LNR):
 Sol, Kök/ziyaret, Sağ
Önce sol alt ağaç, kök ve sağ alt ağaç
• Sonra-kök/ziyaret (Postorder - LRN):
 Sol, Sağ, Kök/ziyaret
Önce sol alt ağaç, sağ alt ağaç ve kök.
34Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
İkili Ağaç Üzerinde Gezinme (devam…)
A
B
C
Q M
H
K
L X
P
Örnek Ağaç
35Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Preorder ile Gezinme
1. Düğümü ziyaret et
2. Sol alt ağaçta gezin
3. Sağ alt ağaçta gezin
Preorder Gezinme:
a, b, d, c, e
36Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Preorder ile Gezinme (devam…)
37Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
A
B
C
Q M
H
K
L X
P
Preorder ile Gezinme (devam…)
Preorder Gezinme:
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
38Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Inorder ile Gezinme
1. Sol alt ağaçta gezin
2. Düğümü ziyaret et
3. Sağ alt ağaçta gezin
Inorder Gezinme:
b, d, a, e, c
39Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Inorder ile Gezinme (devam…)
40Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Inorder ile Gezinme (devam…)
A
B
C
Q M
H
K
L X
P
Inorder Gezinme:
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
41Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Postorder ile Gezinme
1. Sol alt ağaçta gezin
2. Sağ alt ağaçta gezin
3. Düğümü ziyaret et
Postorder Gezinme:
d, b, e, c, a
42Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Postorder ile Gezinme (devam…)
43
Postorder ile Gezinme (devam…)
A
B
C
Q M
H
K
L X
P
Postorder Gezinme:
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
44
Gezinme - Örnek 1
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
45
Gezinme - Örnek 2
46
Gezinmeler Ne İşe Yarar?
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Preorder:
• Ağacın kopyasını elde etme
• Düğümleri sayma
• Yaprakları sayma
• Matematiksel ifadeler için prefix gösterimini elde etme
Postorder:
• İkili ağacı silme
• Fonksiyonel dil derleyicilerinde
• Hesap makinesi programlarında
• Postfix matematiksel ifadelerinin oluşturulmasında
Inorder:
• İkili Arama Ağacında (Binary Search Tree) ağaçtaki bilgiyi sıralı
halde yazdırmada
47
İkili Ağaç Uygulamaları
• Binary Search Tree (İkili Arama Ağacı): Birçok arama
uygulamasında,
• Binary Space Partition: Hemen hemen tüm 3D video
oyunlarında, hangi nesnelerin render edilmesi gerektiğini
belirlemede,
• Binary Tries: Yüksek bant genişliğine sahip router
cihazların router-tablolarını saklamada,
• Hash Trees: P2P programlarında, imza doğrulamada
• Heaps: Öncelik kuyruklarının daha etkin/verimli
gerçekleştiriminde kullanılır. Öncelik kuyrukları işletim
sisteminde prosesleri planlamak için kullanılır. Yapay zeka
uygulamalarında A* yol bulma (path finding)
algoritmasının gerçekleştiriminde
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
48
İkili Ağaç Uygulamaları (devam…)
• GGM Trees: Bir çok şifreleme uygulamasında, sözde
rastgele sayıların ağacının oluşturulmasında
• Treap: Kablosuz ağlarda ve bellek tahsisinde
• T-tree: Bellek içi veritabanlarına (Datablitz, EXtremeDB,
MySQL Cluster, Oracle TimesTen) ait işlemlerinde
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Stackoverflow tartışmasına bakınız…
49
İkili Ağaç Gerçekleştirimine Dair Sorular
• Ağaçtaki düğüm sayısını nasıl bulurum?
• Ağaçtaki yaprak sayısını nasıl bulurum?
• Ağaç yüksekliğini nasıl bulurum?
• İkili ağacın katı (strict) ikili ağaç olup olmadığını
nasıl anlarım?
• İkili ağaçtaki 2 yaprak düğümün en küçük ortak
atasını nasıl bulurum (LCA – Lowest Common
Ancestor)?
• Inorder ve Preorder gezinme sonuçları verilen ikili
ağacı nasıl oluştururum?
• Inorder ve Postorder gezinme sonuçları verilen ikili
ağacı nasıl oluştururum?
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
50
Ağaçtaki Düğüm Sayısını Bulma
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
51
Ağaçtaki Yaprak Sayısını Bulma
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
52
İki Gezinme Sonucundan Ağaç Elde Etme
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Eğer Preorder sonuç verildiyse ilk düğüm köktür.
• Eğer Postorder sonuç verildiyse son düğüm
köktür.
• Kök bulunduktan sonra, Inorder gezinmeye göre,
kökün sol ve sağ tarafındaki düğümler; sol ve sağ
alt ağaç olarak belirlenirler.
• Aynı teknik yeni bulunan sol ve sağ alt ağaç için
özyinelemeli (recursive) olarak uygulanır.
• Gezinme sonuçlarından birisi mutlaka Inorder
olmalıdır. Diğeri Preorder veya Postorder olabilir.
53
İki Gezinme Sonucundan Ağaç Elde Etme (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Inorder gezinme: 20 30 35 40 45 50 55 60 7
Preorder gezinme: 50 40 30 20 35 45 60 55 70
Soru: İkili ağacı elde ediniz.
İYİ ÇALIŞMALAR…
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Yararlanılan Kaynaklar
• Ders Kitabı:
• Data Structures through JAVA, V.V.Muniswamy
• Yardımcı Okumalar:
• Data Structures and Algorithms in Java, Narashima
Karumanchi
• Data Structures, Algorithms and Applications in Java,
Sartaj Sahni
• Algorithms, Robert Sedgewick
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

More Related Content

What's hot

Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)
Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)
Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)
Deniz KILINÇ
 
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Ömer Özselçuk
 
Data Structure (Tree)
Data Structure (Tree)Data Structure (Tree)
Data Structure (Tree)
Adam Mukharil Bachtiar
 
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Yzm 2116  - Bölüm 2 (Algoritma Analizi)Yzm 2116  - Bölüm 2 (Algoritma Analizi)
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Deniz KILINÇ
 
Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures
Gurukul Kangri Vishwavidyalaya - Faculty of Engineering and Technology
 
Red black tree
Red black treeRed black tree
Red black tree
uos lahore
 
Red black tree
Red black treeRed black tree
Red black tree
vinitha96
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data Structure
Anuj Modi
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
Harri Kauhanen
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Tree in data structure
Tree in data structureTree in data structure
Tree in data structure
ghhgj jhgh
 
Red Black Tree
Red Black TreeRed Black Tree
Lecture notes data structures tree
Lecture notes data structures   treeLecture notes data structures   tree
Lecture notes data structures tree
maamir farooq
 
non linear data structure -introduction of tree
non linear data structure -introduction of treenon linear data structure -introduction of tree
non linear data structure -introduction of tree
Siddhi Viradiya
 
The right read optimization is actually write optimization
The right read optimization is actually write optimizationThe right read optimization is actually write optimization
The right read optimization is actually write optimization
james tong
 
Binary Search Tree in Data Structure
Binary Search Tree in Data StructureBinary Search Tree in Data Structure
Binary Search Tree in Data Structure
Meghaj Mallick
 
Tree Data Structure by Daniyal Khan
Tree Data Structure by Daniyal KhanTree Data Structure by Daniyal Khan
Tree Data Structure by Daniyal Khan
Daniyal Khan
 
stack and queue array implementation in java.
stack and queue array implementation in java.stack and queue array implementation in java.
stack and queue array implementation in java.
CIIT Atd.
 
Trees data structure
Trees data structureTrees data structure
Trees data structure
Sumit Gupta
 
Linked List Static and Dynamic Memory Allocation
Linked List Static and Dynamic Memory AllocationLinked List Static and Dynamic Memory Allocation
Linked List Static and Dynamic Memory Allocation
Prof Ansari
 

What's hot (20)

Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)
Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)
Yzm 2116 - Bölüm 5 (Queue, Kuyruk, Basit, Dairesel, Öncelikli)
 
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
 
Data Structure (Tree)
Data Structure (Tree)Data Structure (Tree)
Data Structure (Tree)
 
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Yzm 2116  - Bölüm 2 (Algoritma Analizi)Yzm 2116  - Bölüm 2 (Algoritma Analizi)
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
 
Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures
 
Red black tree
Red black treeRed black tree
Red black tree
 
Red black tree
Red black treeRed black tree
Red black tree
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data Structure
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
Tree in data structure
Tree in data structureTree in data structure
Tree in data structure
 
Red Black Tree
Red Black TreeRed Black Tree
Red Black Tree
 
Lecture notes data structures tree
Lecture notes data structures   treeLecture notes data structures   tree
Lecture notes data structures tree
 
non linear data structure -introduction of tree
non linear data structure -introduction of treenon linear data structure -introduction of tree
non linear data structure -introduction of tree
 
The right read optimization is actually write optimization
The right read optimization is actually write optimizationThe right read optimization is actually write optimization
The right read optimization is actually write optimization
 
Binary Search Tree in Data Structure
Binary Search Tree in Data StructureBinary Search Tree in Data Structure
Binary Search Tree in Data Structure
 
Tree Data Structure by Daniyal Khan
Tree Data Structure by Daniyal KhanTree Data Structure by Daniyal Khan
Tree Data Structure by Daniyal Khan
 
stack and queue array implementation in java.
stack and queue array implementation in java.stack and queue array implementation in java.
stack and queue array implementation in java.
 
Trees data structure
Trees data structureTrees data structure
Trees data structure
 
Linked List Static and Dynamic Memory Allocation
Linked List Static and Dynamic Memory AllocationLinked List Static and Dynamic Memory Allocation
Linked List Static and Dynamic Memory Allocation
 

Yzm 2116 Bölüm 7 - Tree ve Binary tree - İkili Ağaç

  • 1. 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
  • 2. BÖLÜM - 6 Bu bölümde, • Ağaç (Tree) Veri Yapısı Giriş • Ağaç VY Temel Kavramlar • İkili Ağaç (Binary Tree) • İkili Ağaç Özellikleri • İkili Ağaç Gerçekleştirim • İkili Ağaç Üzerinde Gezinme (Traverse) • Preorder, Inorder, Postorder • İkili Ağaç Gerçekleştirimine Dair Sorular konusuna değinilecektir. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 3. 3Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyerarşik yapıya sahip veri yapısıdır. • Aynı aile soyağacında olduğu gibi hiyerarşik bir yapısı vardır ve orada geçen birçok kavram buradaki ağaç veri yapısında da tanımlıdır. • Örneğin çocuk, kardeş düğüm, aile, ata gibi birçok kavram ağaç veri yapısında da kullanılır. • Her biri değişik bir uygulamaya doğal çözüm olan ikili ağaç, kodlama ağacı, sözlük ağacı, kümeleme ağacı gibi çeşitli ağaç şekilleri vardır; üstelik uygulamaya yönelik özel ağaç şekilleri de çıkarılabilir. Ağaç VY Giriş
  • 4. 4Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear) veri yapılarıdır. • Ağaçlar ise doğrusal olmayan belirli niteliklere sahip iki boyutlu veri yapılarıdır. • Ağaçlar hiyerarşik ilişkileri göstermek için kullanılır. • Her ağaç düğümlerden (node) ve kenarlardan (edge) oluşur. • Her düğüm bir nesneyi gösterir. • Her kenar (bağlantı) iki node arasındaki ilişkiyi gösterir. • Arama işlemi bağlı listelere göre çok hızlı yapılır. Ağaç VY Giriş (devam…)
  • 5. 5Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaç VY Giriş (devam…) • Ağacın düğümlerindeki bilgiler sayılardan oluşmuştur. Her düğümdeki sol ve sağ bağlar yardımı ile diğer düğümlere ulaşılır. Sol ve sağ bağlar NULL olabilir. • Düğüm yapıları değişik türlerde bilgiler içeren veya birden fazla bilgi içeren ağaçlar da olabilir.
  • 6. 6Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Ağaç veri yapısı / modeli aşağıdaki yazılım uygulamalarında kullanılırlar: o İşletim sisteminin dosya sistemini modellemekte o Oyunlar için farklı hamleleri ele almakta o Ağ routing (yönlendirme) algoritmalarında o Trie adı verilen VY ile sözlük oluşturmakta ve dinamik yazım kontrolü gibi alanlarda o Huffman sıkıştırma kodlamasında ve o Derleyicilerde matematiksel ifadeleri modellemede kullanılırlar. Ağaç VY Kullanılan Yazılım Uygulamaları
  • 7. 7Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Örnek Ağaç Yapısı – Dosya Sistemi /yazilim kitaplar kodlar dersler yzm219 yzm112 ... 1.pdf 2.pdf 1.pdf 2015-2016 eskia.java b.java yzm2116 yzm317 yzm215 ... 1.ppt 1.doc 1.Pdf
  • 8. 8Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Örnek Ağaç Yapısı – Şirket Organizasyonu
  • 9. 9Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaç VY Temel Kavramlar Level - Seviye 0 1 2 3 A B C D E F G Kök (root) Yaprak Düğüm Aile / Ara Düğüm Yaprak Düğüm 7 düğümlü ağaç Çocuk Düğümler • A düğümü kök olmak üzere 7 düğümden (n) oluşmaktadır. • Toplam 6 kenar (n-1) vardır. • Sol alt ağaç, B kökü ile başlamakta ve sağ alt ağaç da C kökü ile başlamaktadır. • A’dan solda B’ye giden ve sağda C'ye giden iki dal (branch) çıkmaktadır.
  • 10. 10Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaç VY Temel Kavramlar (devam…) • Düğüm (Node): Ağacın her elemanına verilen isim. • Kök (Root): Ağacın başlangıç düğümüdür. • Çocuk (Child): Bir düğüme doğrudan bağlı olan düğümlere o çocukları denilir. • Kardeş Düğüm (Sibling): Aynı düğüme bağlı düğümlere kardeş düğüm veya kısaca kardeş denir. • Aile (Parent): Düğümlerin doğrudan bağlı oldukları düğüm aile olarak adlandırılır; diğer bir deyişle aile, kardeşlerin bağlı olduğu düğümdür. • Ata (Ancestor): Aile düğümünün daha üstünde kalan düğümlere denir. • Torun (Dedscendant): Bir düğümün çocuğuna bağlı olan düğümlere denir.
  • 11. 11Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaç VY Temel Kavramlar (devam…) • Yaprak (Leaf): Ağacın en altında bulunan ve çocukları olmayan düğümlerdir. • Derece (Degree): Bir düğümden alt hiyerarşiye yapılan bağlantıların sayısıdır; yani çocuk veya alt ağaç sayısıdır. • Seviye (Level): Hiyerarşik sıradır (rank). Kök düğüm seviye = 0. • Derinlik (Depth): Bir düğümün köke olan uzaklığı derinliktir. Kök düğüm derinlik = 0. • Yükseklik (Height): Bir düğümün kendi silsilesinden en uzak yaprak düğüme olan uzaklığıdır. Yaprak düğümlerin yükseliği = 0. (Kök yüksekliği = Ağaç Yükesekliği) • Yol (Path): Bir düğümün aşağıya doğru (çocukları üzerinden) bir başka düğüme gidebilmek için üzerinden geçilmesi gereken düğümlerin listesidir.
  • 12. 12Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaç VY Temel Kavramlar (devam…) A B C D E F G Kök (Root) Tanım Kök B D Çocuk/Derece 2 0 0 Kardeş 1 2 3 Seviye 0 1 2 Aile yok Kök C Ata yok yok Kök Yol A A, B A,C,D Derinlik 0 1 2 Yükseklik 3 0 0
  • 13. 13Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaç VY Temel Kavramlar (devam…) Düğüm sayısı: Yükseklik: Kök düğüm: Yapraklar: Seviye sayısı: H'nin ataları: B'nin torunları: E'nin kardeşleri: 9 4 A C, D, F, H, I 4 E, B, A G, H, I D, F
  • 14. 14Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Ağaçlara Özyinelemeli Yaklaşım • Rekürsif mantıkla bir ağaç, bir kök (root) ve alt-ağaçlar şeklinde tanımlanır. • 1 düğümü  2 ve 3 alt-ağaçlarından oluşur • 2 düğümü  4,6 ve 5 (5-9-10) olmak üzere üç alt-ağaçtan oluşur.
  • 15. 15Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç (Binary Tree)
  • 16. 16Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç (Binary Tree) • Her düğümün en fazla iki çocuk düğüme sahip olduğu ağaç yapısına BT denir. • BT, bilgisayar bilimlerinde en çok kullanılan ağaç veri yapılarından olup, sıralı olması durumunda arama, ekleme ve silme işlemlerini çabuklaştırırlar. • Bir BT o Boş tek bir düğümden oluşabileceği gibi, o Sol alt ağaç ve sağ alt ağaç olmak üzere köke ait iki adet ikili ağaçtan da oluşabilir. • BT için gerek şart ilgili BT düğümünün en fazla iki çocuğa (alt ağaca) sahip olabileceğidir.
  • 17. 17Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç (Binary Tree) (devam…) A C D Z I K Kök P M Sağ alt ağaç A B A B İki farklı ikili ağaç
  • 18. 18Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Katı İkili Ağaç (Strict Binary Tree) • Yaprak düğümler haricindeki tüm düğümler sıfır veya iki çocuğa sahip ise katı ikili ağaç olarak adlandırılır. Katı İkili AğaçKatı Olmayan İkili Ağaç
  • 19. 19Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Tam İkili Ağaç (Full Binary Tree) • Her bir düğümün (i)net olarak iki çocuk düğüme sahip olduğu ve (ii)yaprak düğümlerin aynı seviyede olduğu iki ağaçtır. • Her düğüm eşit şekilde sağ ve sol alt-ağaçlara sahiptir.
  • 20. 20Celal 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.
  • 21. 21Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Eksiksiz İkili Ağaç (Complete Binary Tree) • Aşağıdaki örnekler, eksiksiz ikili ağaç kriterlerine uyuyor mu?
  • 22. 22Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Özellikleri – Özellik 1 • Her k seviyesinde, maksimum düğüm sayısı 2k dır. • Kök düğümde k=0 olduğu için düğüm sayısı 1 olurken, • k=2 için maksimum düğüm sayısı 4 olur.
  • 23. 23Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Özellikleri – Özellik 2 • h yüksekliğindeki ikili ağacın maksimum düğüm sayısı = 2h+1 - 1 olarak hesaplanır. • Aşağıdaki ağaç için h = 3 olduğundan maksimum düğüm sayısı 16 – 1 = 15 bulunur.
  • 24. 24Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Özellikleri – Özellik 3 • h yüksekliğindeki ikili ağacın o minimum düğüm sayısı = h + 1 olarak hesaplanır. • Kök düğümün h = 0 da olduğuna dikkat ediniz. A C P P A C P P
  • 25. 25Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Özellikleri – Özellik 4 • En az iki düğüme sahip, n elemanlı bir ikili ağaçta, kenar sayısı = (n - 1) olarak hesaplanır. • Aşağıdaki örneklerde 4’er düğüm ve 3’er kenar mevcuttur. A C P P A C P P
  • 26. 26Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Özellikleri – Özellik 5 • n yaprak düğüme sahip, eksiksiz bir ikili ağaçta (complete), kenar sayısı (k) = 2(n-1)’dir.
  • 27. 27Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Gerçekleştirimi • İki türlü gerçekleştirimi mümkündür: o Dizi kullanarak o Bağlı liste kullanarak
  • 28. 28Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Bağlı Liste İkili Ağaç Gerçekleştirimi
  • 29. 29Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Bağlı Liste İkili Ağaç Gerçekleştirimi (devam…) 4 6 12 45 7 kök 1
  • 30. 30Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Bağlı Liste İkili Ağaç Gerçekleştirimi (devam…) 4 6 12 45 7 kök 1 • Soru: Kökten itibaren düğümleri elimizde olan ikili ağaç üzerinde nasıl dolaşırız?
  • 31. 31Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Üzerinde Gezinme (Traverse) • Bir ağacı bir düğüme sadece bir defa uğrayacak şekilde gezmeye gezinme/geçiş denir. • Gezinme, ağacın sakladığı bilgi türüne göre bir bilgiye ulaşma, listeleme ve başka amaçlarla gerçekleştirilir. • Doğrusal veri yapılarında baştan sona doğru dolaşmak kolaydır. • Ağaçlar ise düğümleri doğrusal olmayan veri yapılarıdır. Bu nedenle farklı algoritmalar uygulanır. • Örneğin; düğümlerin matematiksel operatörler ve oparandlar olduğu bir ikili ağacın gezinme işlemi, infix-postfix gibi bir notasyonu elde etmemizi sağlar.
  • 32. 32Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Üzerinde Gezinme (devam…) • İkili ağacın üzerinde gezinilmesi sırasında bağımsız olarak 3 grup ikili ağaç parçasının 1. Kök 2. Sol alt ağaç 3. Sağ alt ağaç değişik sıralarda gezilmesiyle ile gerçekleşir.
  • 33. 33Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Üzerinde Gezinme (devam…) • İkili ağaç üzerinde dolaşmak için 3 temel yol vardır. Bunlar: • Önce-kök/ziyaret (Preorder - NLR):  Kök/ziyaret, Sol, Sağ Önce kök, sonra sol alt ağaç ve ardından sağ alt ağaç • Ortada-kök/ziyaret (Inorder - LNR):  Sol, Kök/ziyaret, Sağ Önce sol alt ağaç, kök ve sağ alt ağaç • Sonra-kök/ziyaret (Postorder - LRN):  Sol, Sağ, Kök/ziyaret Önce sol alt ağaç, sağ alt ağaç ve kök.
  • 34. 34Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İkili Ağaç Üzerinde Gezinme (devam…) A B C Q M H K L X P Örnek Ağaç
  • 35. 35Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Preorder ile Gezinme 1. Düğümü ziyaret et 2. Sol alt ağaçta gezin 3. Sağ alt ağaçta gezin Preorder Gezinme: a, b, d, c, e
  • 36. 36Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Preorder ile Gezinme (devam…)
  • 37. 37Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları A B C Q M H K L X P Preorder ile Gezinme (devam…) Preorder Gezinme: Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 38. 38Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Inorder ile Gezinme 1. Sol alt ağaçta gezin 2. Düğümü ziyaret et 3. Sağ alt ağaçta gezin Inorder Gezinme: b, d, a, e, c
  • 39. 39Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Inorder ile Gezinme (devam…)
  • 40. 40Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Inorder ile Gezinme (devam…) A B C Q M H K L X P Inorder Gezinme: Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 41. 41Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Postorder ile Gezinme 1. Sol alt ağaçta gezin 2. Sağ alt ağaçta gezin 3. Düğümü ziyaret et Postorder Gezinme: d, b, e, c, a
  • 42. 42Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Postorder ile Gezinme (devam…)
  • 43. 43 Postorder ile Gezinme (devam…) A B C Q M H K L X P Postorder Gezinme: Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 44. 44 Gezinme - Örnek 1 Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 46. 46 Gezinmeler Ne İşe Yarar? Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Preorder: • Ağacın kopyasını elde etme • Düğümleri sayma • Yaprakları sayma • Matematiksel ifadeler için prefix gösterimini elde etme Postorder: • İkili ağacı silme • Fonksiyonel dil derleyicilerinde • Hesap makinesi programlarında • Postfix matematiksel ifadelerinin oluşturulmasında Inorder: • İkili Arama Ağacında (Binary Search Tree) ağaçtaki bilgiyi sıralı halde yazdırmada
  • 47. 47 İkili Ağaç Uygulamaları • Binary Search Tree (İkili Arama Ağacı): Birçok arama uygulamasında, • Binary Space Partition: Hemen hemen tüm 3D video oyunlarında, hangi nesnelerin render edilmesi gerektiğini belirlemede, • Binary Tries: Yüksek bant genişliğine sahip router cihazların router-tablolarını saklamada, • Hash Trees: P2P programlarında, imza doğrulamada • Heaps: Öncelik kuyruklarının daha etkin/verimli gerçekleştiriminde kullanılır. Öncelik kuyrukları işletim sisteminde prosesleri planlamak için kullanılır. Yapay zeka uygulamalarında A* yol bulma (path finding) algoritmasının gerçekleştiriminde Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 48. 48 İkili Ağaç Uygulamaları (devam…) • GGM Trees: Bir çok şifreleme uygulamasında, sözde rastgele sayıların ağacının oluşturulmasında • Treap: Kablosuz ağlarda ve bellek tahsisinde • T-tree: Bellek içi veritabanlarına (Datablitz, EXtremeDB, MySQL Cluster, Oracle TimesTen) ait işlemlerinde Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Stackoverflow tartışmasına bakınız…
  • 49. 49 İkili Ağaç Gerçekleştirimine Dair Sorular • Ağaçtaki düğüm sayısını nasıl bulurum? • Ağaçtaki yaprak sayısını nasıl bulurum? • Ağaç yüksekliğini nasıl bulurum? • İkili ağacın katı (strict) ikili ağaç olup olmadığını nasıl anlarım? • İkili ağaçtaki 2 yaprak düğümün en küçük ortak atasını nasıl bulurum (LCA – Lowest Common Ancestor)? • Inorder ve Preorder gezinme sonuçları verilen ikili ağacı nasıl oluştururum? • Inorder ve Postorder gezinme sonuçları verilen ikili ağacı nasıl oluştururum? Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 50. 50 Ağaçtaki Düğüm Sayısını Bulma Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 51. 51 Ağaçtaki Yaprak Sayısını Bulma Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 52. 52 İki Gezinme Sonucundan Ağaç Elde Etme Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Eğer Preorder sonuç verildiyse ilk düğüm köktür. • Eğer Postorder sonuç verildiyse son düğüm köktür. • Kök bulunduktan sonra, Inorder gezinmeye göre, kökün sol ve sağ tarafındaki düğümler; sol ve sağ alt ağaç olarak belirlenirler. • Aynı teknik yeni bulunan sol ve sağ alt ağaç için özyinelemeli (recursive) olarak uygulanır. • Gezinme sonuçlarından birisi mutlaka Inorder olmalıdır. Diğeri Preorder veya Postorder olabilir.
  • 53. 53 İki Gezinme Sonucundan Ağaç Elde Etme (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Inorder gezinme: 20 30 35 40 45 50 55 60 7 Preorder gezinme: 50 40 30 20 35 45 60 55 70 Soru: İkili ağacı elde ediniz.
  • 54. İYİ ÇALIŞMALAR… Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 55. Yararlanılan Kaynaklar • Ders Kitabı: • Data Structures through JAVA, V.V.Muniswamy • Yardımcı Okumalar: • Data Structures and Algorithms in Java, Narashima Karumanchi • Data Structures, Algorithms and Applications in Java, Sartaj Sahni • Algorithms, Robert Sedgewick Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları