İkili Ağaçlar İkili Arama Ağaçları

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Karmaşıklık Giriş.
Karmaşıklık Giriş.
KARAR TEORİSİ.
Listeler.
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
JEODEZİ I Doç.Dr. Ersoy ARSLAN.
AVL-Ağaçları (Trees).
B+-Ağaçları.
Silme Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazı iç düğümlerde bir anahtar.
Silme Sil 12 Tek dönüş.
Hashing Çırpı, kırpma, özetleme, adresleme
Algoritmalar DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
Tam İkili Ağaçlar 9. Ünite ağaçlardan bahseder.
İndeksler Sibel SOMYÜREK.
İkili Arama Ağaçları (Binary Search Trees) BST
The Relational Algebra and Relational Calculus
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Özyineli Sıralama Algoritmaları
Diziler.
Binary Ağaçlar (Ekleme/Silme Örnekleri)
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
YAPAY ZEKA ve UZMAN SİSTEMLER
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgelerin bilgisayarda gösterimine ilişkin iki standart yaklaşımı inceleyeceğiz.
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
SQL’e Giriş ve SELECT Komutu
XML Document Object Model (DOM)
Veri Yapıları Yrd. Doç. Dr. Altan MESUT.
GRAPHS ÖZET.
BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
Arama ile sorun çözme Ders 3.
SQL Komutları (2) Uzm. Murat YAZICI.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
ÜÇGENDE AÇI - KENAR BAĞINTILARI ÖZELLİKLERİ
Partially Ordered Trees (POT)
HESAP TABLOSU PROGRAMLARI
Çok Seviyeli Dizinleme ve B+ Trees
Veri Yapıları.
Chapter 11: Dosya Sistem Arayüzü
Veri yapıları Hafta3 Dizi Yapıları.
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Veri Madenciliği Birliktelik Analizi: Temel Kavramlar ve Algoritmalar
Hashing (Çırpılama).
Chapter 7 Space and Time Tradeoffs Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Kütük Organizasyonu1 Dosyalarda Farklı Yaklaşımlar.
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
B+-Ağaçları.
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
SQL Server - Indexes.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Ders 9: İkili arama ağaçları
Kırmızı Siyah Ağaçlar.
Çizge Algoritmalari 10. Ders.
Kelime (Text) İşleme Algoritmaları
Sunum transkripti:

İkili Ağaçlar İkili Arama Ağaçları

Ağaçlar Bağlantılı listedeki erişim zamanı lineerdir. Çoğu işlemlerin (operasyon) (arama, ekleme, silme) çalışma zamanını daha aza indiren (O(log N) gibi) başka bir veri yapısı var mıdır?

Ağaçlar Ağaç düğümlerin koleksiyonudur. Koleksiyon boş olabilir Eğer boş değilse, ağaç birbirlerinden faklı r kök düğümünü ve sıfır veya birden fazla boş olmayan T1, T2, ...., Tk altağaçlarını içerir, herbiri r’ den gelen bir yönlendirilmiş kenar ile köke bağlıdır.

Bazı tanımlar Çocuk ve ebeveyn Yapraklar Kardeş Kök hariç her düğümün bir ebeveyni vardır. Bir düğümün çocuk sayısı değişebilir. Yapraklar Çocuğu olmayan düğümlere denir. Kardeş Ebeveyni aynı olan düğümlerdir.

Bazı Tanımlar Patika – yol - Path Uzunluk - Length Bir yoldaki kenar sayısı Bir düğümün derinliği Kökten düğüme olan tekil yolun uzunluğu Bir ağacın derinliği en derinde bulunan yaprağın derinliğine eşittir. Bir düğümün yüksekliği Düğümden bir yaprağa olan en uzun yola denir. Bütün yapraklar yükseklik 0 ‘ da bulunur Bir ağacın yüksekliği kökün yüksekliğine eğittir. Ata (veya dede) ve torun

Örnek UNIX dizini

İkili Ağaçlar Bu ağaçta hiçbir düğümün ikiden fazla çocuğu olamaz Ortalama bir ikili ağacın derinliği N ‘den küçüktür, en kötü durumda bile derinlik N-1 olabilir.

Örnek:ifade ağaçları Yapraklar terim (sabit veya değişken) Diğer düğümler işlem Bazı işlemler binary değilse ikili ağaçta gösterilemeyebilir.

Ağaç Gezme (Tree Traversal) Bir ağaçtaki verileri belli bir düzende yazmak için kullanılır. Önce-kök Gezme (Pre-order traversal) Kökteki veriyi yaz Sol altağaçtaki verileri iteratif olarak yaz Sağ altağaçtaki verileri iteratif olarak yaz

Öncekök, sonrakök, ve içkök Preorder, Postorder and Inorder Öncekök gezme düğüm, sol, sağ önek ifadesi ++a*bc*+*defg

Öncekök, sonrakök, ve içkök Sonrakök gezme Sol, sağ, düğüm Sonek ifadesi abc*+de*f+g*+ İçkök yazma Sol, düğüm, sağ İçek ifadesi a+b*c+d*e+f*g

Öncekök

sonrakök

Öncekök, sonrakök, ve içkök

İkili Ağaçlar İkili ağaç SVY üzerindeki muhtemel işlemler parent - ebeveyn left_child, right_child - sol_çocuk, sağ_çocuk Sibling - kardeş root, etc - kök Gerçekleştirmesi İkili ağaçta en fazla iki çocuk olduğu için, bunlar için pointer kullanabiliriz.

Karşılaştırma: Genel bir ağaç gerçekleştirilmesi

İkili Arama Ağacı İkili arama ağaç özelliği Anahtarları düğümler içinde depolar; böylece arama, ekleme ve silme etkili bir şekilde yapılabilir. İkili arama ağaç özelliği Herbir X düğümü için, solundaki altağaçtaki (subtree) anahtarlar X düğümünde bulunan değerden daha küçüktür, ve sağındaki ağaçtaki anahtarlar X düğümünde bulunan değerden daha büyüktür.

İkili Arama Ağaçları Bir ikili arama ağacı İkili arama ağacı değil

İkili Arama Ağaçları Ayni elemanları gösteren iki ikili arama ağacı Bir düğümün ortalama derinliği O(log N); maksimum derinliği ise O(N)

Gerçekleştirme

İAA Arama Eğer 15’i arıyorsak arama işlemi biter. Eğer aranan anahtar < 15 ise, sol altağaçta aramaya devam edilir. Eğer aranan anahtar > 15 ise, sağ altağaçta aramaya devam edilir.

Arama (Bul - Find) Find X: X anahtarını bulunduran düğümün pointer ini dönder veya eğer böyle bir düğüm yok ise NULL dönder. Zaman Karmaşıklığı O(ağaç yüksekliği)

İAA’ında içkök gezme Bütün anahtarları sıralanmış bir şekilde getirir.

findMin/ findMax Ağaçtaki en küçük elemanı içeren düğümü dönderir. Kökten başla ve sol çocuk var olduğu sürece sola git. Durma noktasındaki eleman en küçük elemandır. findMax için de mantık benzer şekildedir. Zaman karmaşıklığı = O(ağaç yüksekliği)

Ekle - insert Zaman Karmaşıklığı = O(ağaç yüksekliği) Ağaçta ilgili yere find komutunda olduğu gibi git Eğer X varsa, bir şey yapma (veya bir şey güncelle) Diğer durumda, X i gezilen yoldaki en son noktaya ekle. Zaman Karmaşıklığı = O(ağaç yüksekliği)

Sil - delete Bir düğüm silindiği zaman, silinen düğümün çocuklarına nasıl yerleştireceğimizi düşünmemiş gerekir. Bu işlem arama ağacı (search tree) özelliğinin korunması için gereklidir.

sil Üç durum vardır: (1) düğüm yaprak ise (2) düğümün tek çocuğu varsa Ebeveynden bir çocuğa bir pointer ata

sil (3) düğümün 2 çocuğu varsa Silinen düğüm anahtarını sağ altağaçtaki minimum elemanla yer değiştir (replace the key of that node with the minimum element at the right subtree ) Minimum elemanı sil Daha sonra ya hiç çocuk kalmamıştır yada bir çocuk vardır. Bu durumda durum 1 ve 2 uygulanır.. Zaman karmaşıklığı = O(ağaç yüksekliği)