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

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

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

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

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

YZM 2116 Veri Yapıları

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

Ağaç (Tree) Veri Modeli

Veri Yapıları. Ağaçlar

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ı

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

BIL222 Veri Yapıları ve Algoritmalar

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

AĞAÇ-TREE VERİ YAPISI

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

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

BIP116-H14-1 BTP104-H014-1

Çok Yollu Ağaçlar (Multi-Way Trees)

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

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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ü

Final Sınavı Soruları Bahar 2018

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

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

Binary Tree nedir?uygulamas nasl yaplr?

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

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

Arasınav Örnek Soruları Bahar 2018

YZM 2116 Veri Yapıları

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

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

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

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

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

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

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

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

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

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

Algoritmalar. DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

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

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

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

Algoritmalar. Kırmızı Siyah Ağaçları Red Black Trees. Bahar 2017 Doç. Dr. Suat Özdemir 1

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

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

Yrd. Doç. Dr. Caner ÖZCAN

Algoritmalara Giriş 6.046J/18.401J

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

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

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

Indeksli Sıralı Erişimli Dosya Yapıları (Indexed Sequential File Organization) ve. Bit Seviyesinde İşlemler (Bit Level and Related Structures)

Final Sınavı Örnek Soruları Bahar 2018

VERİ YAPILARI DERSİ TEST SORULARI

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

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

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

Fiziksel Veritabanı Modelleme

VERİ YAPILARI VE PROGRAMLAMA

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

Azalt ve Fethet Algoritmaları

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

Arama metodlarında temel işlem anahtarları karşılaştırmaktır.

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Bilgilerin Uzun Vadeli Saklanması

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

YZM 2116 Veri Yapıları

Yrd. Doç. Dr. Caner ÖZCAN

Arasınav Soruları Bahar 2018

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

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

#$% &'#(# Konular. Direct File Organization. Progressive Overflow Buckets Linear Quotient Brent s Method Binary Tree

Algoritmalara Giriş 6.046J/18.401J

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

Örnek Arasınav Soruları Güz 2017

YZM 2116 Veri Yapıları

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

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

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

3.Hafta Master Teorem ve Böl-Fethet Metodu

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

Problem Seti 4 Çözümler

IP Alt Ağlara Bölmek (Subnetting)

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

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

Akademik Rapor Hazırlama ve Yazışma Teknikleri

EEM211 ELEKTRİK DEVRELERİ-I

Veri Yapıları Laboratuvarı

Elektrik Devre Temelleri

Temel Elektronik Basic Electronic Düğüm Gerilimleri Yöntemi (Node-Voltage Method)

BAĞLAÇLI LİSTELER LINKED LISTS

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

Ç NDEK LER 1 XML E G R fi 1 XML Nedir? 1 XML in Avantajlar 3 HTML ve XML Aras ndaki Farklar 4 XML Dosyalar n Görüntülemek 6 XML Dosyas Oluflturmak 9

6.Hafta Bilinen Probleme İndirgeme Tasarım Yöntemi

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

IMDS TANIMLAR SÖZLÜĞÜ (AIOS TEDARĠKÇĠLERĠ ĠÇĠN HAZIRLANMIġTIR)

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Transkript:

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

Sunum planı Genel kavramlar İkili ağaç İkili arama ağacı AVL Tree B-Tree

Genel Kavramlar Bir ağaç yapısı örneği

Genel Kavramlar Düğüm (node) : Ağacın her bir elemanına düğüm adı verilir. (A, B, C) Kök (root) : En üst seviyedeki tek düğümdür. (A bilgisini içeren düğüm.) Çocuk (child) : Bir düğümün sol ve sağ bağı aracılığı ile bağlandığı düğümler o düğümün çocuklarıdır. (B ve C, A'nın çocuklarıdır.) Aile (parent) : Bir düğüm, sağ ve sol bağları ile bağlandığı düğümlerin ailesidir. (A düğümü, B ve C düğümlerinin ailesidir.) Bir düğümün düzey (level) veya derinliği (depth) : Bir düğümün kök düğümden olan uzaklığıdır. (D düğümünün düzeyi veya derinliği 2'dir.)

Genel Kavramlar Ağacın derinliği (depth of tree) : En derindeki yaprağın derinliği veya yüksekliği (Verilen ağacın derinliği 3'tür. ) Yaprak (leaf) : Herhangi bir çocuğu bulunmayan düğümlere yaprak adı verilir. (D,G,H,I) Kardeş (sibling, brother) : Aynı aileye sahip düğümlerdir. (B ile C kardeştir. D ile E kardeştir. H ile I kardeştir.)

İkili Ağaç (Binary Tree) Düğümlerinin en fazla 2 çocuğa sahip olduğu ağaçlardır. a b c d e f g h i j k l

İkili ağaç üzerinde dolaşma (traverse) Dolaşma (traverse), ağaç üzerindeki herhangi bir düğüme erişmek için ağaç üzerinde gezmedir. 1. Kökten başlayarak dolaşma (Preorder (depth-first order) traverse) I. Köke uğra II. III. Sol alt ağacı preorder olarak dolaş. Sağ alt ağacı preorder olarak dolaş. A B C D E F G A B D E C F G

İkili ağaç üzerinde dolaşma (traverse) 2. Sıralı Dolaşma (Inorder (Symmetric order) Traverse) I. Sol alt ağacı inorder'a göre dolaş II. Köke uğra III. Sağ alt ağacı inorder'a göre dolaş. 3. Sondan başlayarak dolaşma (Postorder Traverse) I. Sol alt ağacı postorder'a göre dolaş II. Sağ alt ağacı postorder'a göre dolaş. III. Köke uğra A A B C B C D E F G D B E A F C G D E F G D E B F G C A

İkili arama ağaçları (Binary search tree) İkili ağaçların özel bir halidir. İkili arama ağaçları, her bir düğümün solundaki tüm düğümler kendisinden küçük, sağındakiler de kendisinden büyük olacak şekilde oluşturulurlar.

İkili arama ağaçlarında arama 9 anahtarının aranması: I. 9 ile kökteki 15 karşılaştır. 9<15 olduğundan sol alt ağaca git. II. 9 ile 6 karşılaştır. 9>6 olduğundan sağ alt ağaca git. III. 9 ile 7 karşılaştır. 9>7 olduğundan sağ alt ağaca git. IV. 9 ile 13 karşılaştır. 9<13 olduğundan sol alt ağaca git. V. 9=9 dur. Aranan anahtar bulundu!

İkili arama ağaçları İndeks sıralı dosyalarda ağaç yapısı indeks amacıyla kullanılırken, kayıtlar yapraklarda bulunur. İkili arama ağaçlarında kayıtlar hem yapraklarda hem düğümlerde tutulurlar. İndeks Veri İndeks ve veri İndeks sıralı dosya İkili arama ağacı

AVL Tree AVL ağacı, denge şartı olan ikili arama ağacıdır. Height balanced tree olarak da adlandırılırlar. Herhangi bir ikili arama ağacının AVL ağacı olması için bütün düğümlerin çocukları arasındaki farkın en fazla bir olması gerekir.

Dengeli Ağaç (Balanced Tree) Bütün düğümler için sol alt ağacın yüksekliği ile sağ alt ağacın yüksekliği arasında en fazla bir fark varsa bu dengeli ağaç olarak adlandırılır. Denge faktörü (balance vector)önemlidir. Denge faktörü = yükseklik (sağ altağaç) yükseklik (sol altağaç) Denge faktörü -1, 0 ve 1 değerini alabilir.

Dengeli Ağaç (Balanced Tree) denge faktörü=2-3=-1 Dengeli bir ağaçtır. denge faktörü=1-3=-2 Dengeli bir ağaç değildir.

B-Tree B-Tree, çok yollu bir arama ağacıdır. Bir node un en fazla m çocuğu vardır. Her yaprak olmayan node un (kök hariç) en az m/2 çocuğu olmalıdır. Bir node taki anahtar, sol alt ağaçtaki tüm anahtarlardan büyüktür ve sağ alt ağaçtaki tüm anahtarlardan küçüktür.

B-Tree Kök (root) node en az iki tane yaprak olmayan node a sahiptir. Yaprak ve kök olmayan her node k-1 tane anahtara ve k adet alt ağaç referansına sahiptir. (m/2 k m) k çocuklu bir yaprak olmayan node u k -1 anahtara sahiptir. Capacity order=d dersek, anahtarlar d ile 2d arasında olmak zorundadır. Sadece kök 1 ile 2d arasında olabilir. İşaretçiler ise d+1 ile 2d+1 arasındadır. Yalnız kökün işaretçileri 2 ile 2d+1 arasında olabilir. Bütün yapraklar aynı düzeydedir.

B-Tree -- Ekleme Anahtar Ekleme: 1. Eğer boş alanı olan bir yaprağa yerleştirilecekse doğrudan yaprağın ilgili alanına yerleştirilir. 2. Eğer ilgili yaprak doluysa, yaprak ikiye bölünür ve anahtarların yarısı yeni bir yaprak oluşturur. Eski yapraktaki en son anahtar bir üst seviyedeki node aktarılır ve yeni yaprağı referans olarak gösterir. 3. Eğer kök ve tüm yapraklar doluysa, önce ilgili yaprak ikiye bölünür ve eski yapraktaki en son anahtar köke aktarılır. Kök node da dolu olduğu için ikiye bölünür ve eski node daki en son anahtar kök yapılır.

B-Tree -- Ekleme Örnek Anahtarlar= 80, 50, 100, 90, 60, 65, 70, 75, 55, 64, 51, 76, 77, 78, 200, 300, 150 capacity order=d=2 * 80 anahtarını ekleme ˆ 80 ˆ ˆ ˆ ˆ * 50 anahtarını ekleme ˆ 50 ˆ 80 ˆ ˆ ˆ * 100 anahtarını ekleme ˆ 50 ˆ 80 ˆ 100 ˆ ˆ * 90 anahtarını ekleme ˆ 50 ˆ 80 ˆ 90 ˆ 100 ˆ

B-Tree -- Ekleme Anahtarlar= 80, 50, 100, 90, 60, 65, 70, 75, 55, 64, 51, 76, 77, 78, 200, 300, 150 * 60 anahtarının eklenmesi * 65 anahtarının eklenmesi

B-Tree -- Ekleme Anahtarlar= 80, 50, 100, 90, 60, 65, 70, 75, 55, 64, 51, 76, 77, 78, 200, 300, 150 * 70 anahtarının eklenmesi * 75 anahtarının eklenmesi

B-Tree -- Ekleme Anahtarlar= 80, 50, 100, 90, 60, 65, 70, 75, 55, 64, 51, 76, 77, 78, 200, 300, 150 * 55 ve 64 anahtarının eklenmesi * 51 anahtarının eklenmesi

B-Tree -- Ekleme Anahtarlar= 80, 50, 100, 90, 60, 65, 70, 75, 55, 64, 51, 76, 77, 78, 200, 300, 150 * 76 ve 77 anahtarının eklenmesi * 78 anahtarının eklenmesi

B-Tree -- Ekleme Anahtarlar= 80, 50, 100, 90, 60, 65, 70, 75, 55, 64, 51, 76, 77, 78, 200, 300, 150 * 200 ve 300 anahtarlarının eklenmesi * 150 anahtarının eklenmesi

B-Tree -- Silme Anahtar silme: 1. Minimum kapasitenin (d/2) üzerindeki yapraklardan kayıt rahatlıkla silinebilir. * 88 anahtarlı kaydın silinmesi

B-Tree -- Silme 2. Bir yaprak olmayan node üzerinden kayıt silindiğinde inorder takipçisi yerine yazılır. (inorder takipçisi, eklemede soldaki en büyük düğüm, silmede sağdaki en küçük düğümdür.) Minimum kapasitenin altına düşülmediyse düzenlemeye gerek yoktur. * 71 anahtarlı kaydın silinmesi:

B-Tree -- Silme 3. Bir node daki kayıt sayısı minimum kapasiteden aşağı düşerse ve kardeş node u fazla kayda sahipse, parent ve kardeş node ile yeniden düzenleme yapılır. * 83 anahtarlı kaydın silinmesi: 83 ün silinmesi durumunda node daki eleman sayısı minimum kapasite olan 1 e (d/2=1) düşer. Bu durumda önce sağ, sonra sol node da minimumdan fazla kayıt olup olmadığına bakılır. Sağ node da olduğu için bir tane kayıt alınabilir. Burada 86, kayıdın silindiği node a alınırken 89 bir üst node a yazılır.

B-Tree -- Silme 4. İki kardeş node minimum kapasitenin altına düşerse ikisi ve parent node daki kayıt birleştirilir. * 73 anahtarlı kaydın silinmesi: 73 silindiğinde inorder takipçisi olan 74 yerine yazılır. 74 ün eski nodunda bulunan eleman sayısı minimumun altına düşer. Sağ ve sol kardeş nodelarında da minimum düzeyde kayıt olduğundan düzenleme yapılır..86,89,91,96 birleştirilerek tek node yapılır.

B-Tree -- Silme * 73 anahtarlı kaydın silinmesi devamı Üstten 89 alındığında üstteki node da minimum kapasitenin altına düşer. Benzer şekilde 98 tek kalır, sağ ve sol kardeş nodelar ından alınabilecek eleman olmadığından düzenleme yapmak gereklidir. 31,50,74,98 birleştirilerek tek node yapılır.

Kaynaklar http://en.wikipedia.org/wiki/b-tree