YZM 2116 Veri Yapıları

Benzer belgeler
Ağaç (Tree) Veri Modeli

YZM 2116 Veri Yapıları

Veri Yapıları. Ağaçlar

YZM 2116 Veri Yapıları

Ağaçlar (Trees) Ağaçlar (Trees)

YZM 2116 Veri Yapıları

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

YZM 2116 Veri Yapıları

AĞAÇLAR. Doç. Dr. Aybars UĞUR

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

YZM 2116 Veri Yapıları

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

BIP116-H14-1 BTP104-H014-1

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

YZM 2116 Veri Yapıları

Arasınav Örnek Soruları Bahar 2018

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

YZM 2116 Veri Yapıları

AĞAÇ-TREE VERİ YAPISI

Veri Yapıları. Ağaçlar. Ağaçlar genel bilgi

YZM 2116 Veri Yapıları

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2

BIL222 Veri Yapıları ve Algoritmalar

Final Sınavı Soruları Bahar 2018

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Ağaçlar(Trees) AĞAÇ VERİ MODELİ

GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi VERİ YAPILARI. Bilgisayar Mühendisliği ÖĞR.GÖR.GÜNAY TEMÜR 1

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BMT207 VERİ YAPILARI DATA STRUCTURE

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

YZM 2116 Veri Yapıları

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

ALGORİTMA VE PROGRAMLAMA II

Final Sınavı Örnek Soruları Bahar 2018

YZM 2116 Veri Yapıları

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Ümit ATİLA

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

Veri Yapıları Laboratuvarı

Çok Yollu Ağaçlar: B*-Trees B*-Trees

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

Arasınav Soruları Bahar 2018

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Binary Tree nedir?uygulamas nasl yaplr?

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

ALGORİTMA VE PROGRAMLAMA I

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Örnek Arasınav Soruları Güz 2017

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

YZM 2105 Nesneye Yönelik Programlama

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları

7.Hafta Dengeli Arama Ağaçları (Red - Black Tree)

ALGORİTMA VE PROGRAMLAMA I

#$% &'#(# Konular. Binary Tree Structures. Binary Search Trees AVL Trees Internal Path Reduction Trees Deerlendirme

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK

VERİ YAPILARI DERSİ TEST SORULARI

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Algoritmalara Giriş 6.046J/18.401J

YZM 2105 Nesneye Yönelik Programlama

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

ALGORİTMA VE PROGRAMLAMA II

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15.

Özyineleme (Recursion)

BMB204. Veri Yapıları Ders 11. Çizgeler (Graph) Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

#$% &'#(# Konular. B-Tree and Derivatives. B-Trees B#-Trees B+-Trees Deerlendirme

ALGORİTMA VE PROGRAMLAMA I

Bölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

YZM 2105 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA II

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

YZM 3215 İleri Web Programlama

Yrd. Doç. Dr. Caner ÖZCAN

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1

BAĞLAÇLI LİSTELER LINKED LISTS

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı

YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR

Transkript:

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

Bu bölümde, BÖLÜM - 7 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.

Ağaç VY Giriş 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. 3

Ağaç VY Giriş (devam ) 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. 4

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. 5

Ağaç VY Kullanılan Yazılım Uygulamaları 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. 6

Örnek Ağaç Yapısı Dosya Sistemi /yazilim kitaplar kodlar dersler yzm219 yzm112... a.java b.java 2015-2016 eski 1.pdf 2.pdf 1.pdf yzm2116 yzm317 yzm215... 1.ppt 1.doc 1.Pdf 7

Örnek Ağaç Yapısı Şirket Organizasyonu 8

Ağaç VY Temel Kavramlar Level - Seviye 0 1 2 3 B Yaprak Düğüm Kök (root) D A E C Çocuk Düğümler Yaprak Düğüm 7 düğümlü ağaç Aile / Ara Düğüm F G 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. 9

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. 10

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. 11

Ağaç VY Temel Kavramlar (devam ) B Kök (Root) Tanım Kök B D A C D E F G Ç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 12

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 13

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. 14

İkili Ağaç (Binary Tree) 15

İ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. 16

İkili Ağaç (Binary Tree) (devam ) Kök A A A C D B B İki farklı ikili ağaç P Z I M Sağ alt ağaç K 17

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ı Olmayan İkili Ağaç Katı İkili Ağaç 18

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. 19

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. 20

Eksiksiz İkili Ağaç (Complete Binary Tree) Aşağıdaki örnekler, eksiksiz ikili ağaç kriterlerine uyuyor mu? 21

İkili Ağaç Özellikleri Özellik 1 Her k seviyesinde, maksimum düğüm sayısı 2 k 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. 22

İkili Ağaç Özellikleri Özellik 2 h yüksekliğindeki ikili ağacın maksimum düğüm sayısı = 2 h+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. 23

İ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 A C C P P P P 24

İ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 A C C P P P P 25

İ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. 26

İkili Ağaç Gerçekleştirimi İki türlü gerçekleştirimi mümkündür: o Dizi kullanarak o Bağlı liste kullanarak 27

Bağlı Liste İkili Ağaç Gerçekleştirimi 28

Bağlı Liste İkili Ağaç Gerçekleştirimi (devam ) kök 4 6 12 45 7 1 29

Bağlı Liste İkili Ağaç Gerçekleştirimi (devam ) kök 4 6 12 45 7 1 Soru: Kökten itibaren düğümleri elimizde olan ikili ağaç üzerinde nasıl dolaşırız? 30

İ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. 31

İ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. 32

İ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. 33

İkili Ağaç Üzerinde Gezinme (devam ) Örnek Ağaç A B K C H L X Q M P 34

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 35

Preorder ile Gezinme (devam ) 36

Preorder ile Gezinme (devam ) A B K C H L X Q M P Preorder Gezinme: 37

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 38

Inorder ile Gezinme (devam ) 39

Inorder ile Gezinme (devam ) A B K C H L X Q M P Inorder Gezinme: 40

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 41

Postorder ile Gezinme (devam ) 42

Postorder ile Gezinme (devam ) A B K C H L X Q M P Postorder Gezinme: 43

Gezinme - Örnek 1 44

Gezinme - Örnek 2 45

Gezinmeler Ne İşe Yarar? 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 46

İ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 47

İ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 Stackoverflow tartışmasına bakınız 48

İ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? 49

Ağaçtaki Düğüm Sayısını Bulma 50

Ağaçtaki Yaprak Sayısını Bulma 51

İki Gezinme Sonucundan Ağaç Elde Etme 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. 52

İki Gezinme Sonucundan Ağaç Elde Etme (devam ) 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. 53

İYİ ÇALIŞMALAR

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