Ağaç (Tree) Veri Modeli

Benzer belgeler
Veri Yapıları. Ağaçlar

YZM 2116 Veri Yapıları

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

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

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

BIP116-H14-1 BTP104-H014-1

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

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

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

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

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

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

AĞAÇ-TREE VERİ YAPISI

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

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

YZM 2116 Veri Yapıları

BIL222 Veri Yapıları ve Algoritmalar

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

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

Final Sınavı Örnek Soruları Bahar 2018

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

VERİ YAPILARI DERSİ TEST SORULARI

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

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

Final Sınavı Soruları Bahar 2018

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

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

Arasınav Örnek Soruları Bahar 2018

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

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ü

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

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

Binary Tree nedir?uygulamas nasl yaplr?

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

VERİ YAPILARI VE PROGRAMLAMA

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

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

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

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

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

ALGORİTMA VE PROGRAMLAMA I

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

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

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

YZM 2116 Veri Yapıları

Yrd. Doç. Dr. Caner ÖZCAN

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

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

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

ALGORİTMA VE PROGRAMLAMA II

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

Bilgilerin Uzun Vadeli Saklanması

HSancak Nesne Tabanlı Programlama I Ders Notları

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

KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I

YZM 2116 Veri Yapıları

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

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

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

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

BAĞLAÇLI LİSTELER LINKED LISTS

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

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

ALGORİTMA VE PROGRAMLAMA I

{\} /\ Suhap SAHIN Onur GÖK

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

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

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

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

BMT207 VERİ YAPILARI DATA STRUCTURE

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

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

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

A { x 3 x 9, x } kümesinin eleman sayısı A { x : x 1 3,x } kümesinin eleman sayısı KÜMELER

BAĞLAÇLI LİSTELER LINKED LISTS

TEMEL BAZI KAVRAMLAR. Uzay: İçinde yaşadığımız sonsuz boşluktur. Uzay, bir noktalar kümesidir. Uzay, bütün varlıkları içine alır.

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

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

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

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

Veri Yapıları Laboratuvarı

Algoritmalara Giriş 6.046J/18.401J

Pointer Kavramı. Veri Yapıları

Hafta 05 - Karar Ağaçları/Kümeleme

Yrd. Doç. Dr. Caner ÖZCAN

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

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

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

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

Göstericiler (Pointers)

Arasınav Soruları Bahar 2018

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

Azalt ve Fethet Algoritmaları

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

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

Veri Yapıları ve Algoritmalar

14. LİSELERARASI MATEMATİK YARIŞMASI EKİP FİNAL SORULARI

Transkript:

Ağaç (Tree) Veri Modeli 1

2 Ağaç Veri Modeli Temel Kavramları Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir; 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 modelinde de tanımlıdır. Örneğin çocuk, kardeş düğüm, aile, ata gibi birçok kavram ağaç veri modelinde de kullanılır. Genel olarak, veri, ağacın düğümlerinde tutulur; dallarda ise geçiş koşulları vardır denilebilir. 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ç Veri Modeli Temel Kavramları 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ç node lar ve kenarlardan (edge) oluşur. Herbir node(düğüm) bir nesneyi gösterir. Herbir kenar (bağlantı) iki node arasındaki ilişkiyi gösterir. Arama işlemi bağlı dizilere göre çok hızlı yapılır.

4 Ağaç Veri Modeli Temel Kavramları Ağaçlardaki düğümlerden iki veya daha fazla bağ çıkabilir. İkili ağaçlar (binary trees), düğümlerinde en fazla iki bağ içeren (0,1 veya 2) ağaçlardır. Ağacın en üstteki düğümüne kök (root) adı verilir. Uygulamaları: Organizasyon şeması Dosya sistemleri Programlama ortamları

5 Ağaç Veri Modeli Temel Kavramları Örnek ağaç yapısı

6 Ağaç Veri Modeli Temel Kavramları 5 5 7 8 7 8 9 9 Şekil 1: İkili ağacın grafiksel gösterimleri

7 Ağaç Veri Modeli Temel Kavramları Şekil 1 de görülen 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 boş ("NULL" = "/" = "\") da olabilir. Düğüm yapıları değişik türlerde bilgiler içeren veya birden fazla bilgi içeren ağaçlar da olabilir. Doğadaki ağaçlar köklerinden gelişip göğe doğru yükselirken veri yapılarındaki ağaçlar kökü yukarıda yaprakları aşağıda olacak şekilde çizilirler.

8 Ağaç Veri Modeli Temel Kavramları Düzey 1 A Kök (root) 2 3 4 B Yaprak Düğüm D E C Çocuk düğümler Yaprak Düğüm Aile (Ara Düğüm) F G Şekildeki ağaç, A düğümü kök olmak üzere 7 düğümden oluşmaktadır. Sol alt ağaç B kökü ile başlamakta ve sağ alt ağaç da C kökü ile başlamaktadır. Şekil : Ağaçlarda düzeyler A'dan solda B'ye giden ve sağda C'ye giden iki dal (branch) çıkmaktadır.

9 Ağaç Veri Modeline İlişkin Tanımlar Düğüm (Node) Ağacın her bir elemanına düğüm adı verilir. Kök Düğüm (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) ve Torun (Dedscendant) Aile düğümünün daha üstünde kalan düğümlere ata denilir; torun, bir düğümün çocuğuna bağlı olan düğümlere denir.

10 Ağaç Veri Modeline İlişkin Tanımlar 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. Düzey (Level) ve Derinlik (Depth) Düzey, iki düğüm arasındaki yolun üzerinde bulunan düğümlerin sayısıdır. Kök düğümün düzeyi 1, doğrudan köke bağlı düğümlerin düzeyi 2'dir. Bir düğümün köke olan uzaklığı ise derinliktir. Kök düğümün derinliği 1 dir. Yaprak (Leaf) Ağacın en altında bulunan ve çocukları olmayan düğümlerdir. Yükseklik (Height) Bir düğümün kendi silsilesinden en uzak yaprak düğüme olan uzaklığıdır. 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 Ağaç Veri Modeline İlişkin Tanımlar Tanım Düğüm sayısı Değer 9 Yükseklik 4 Kök düğüm A Yapraklar C, D, F, H, I Düzey sayısı 5 H'nin ataları E, B, A B'nin torunları G, H, I E'nin kardeşleri D, F Sağ alt ağaç Yok Sol alt ağaç: B

13 Ağaçların Bağlı Yapısı Bir düğüm çeşitli bilgiler ile ifade edilen bir nesnedir. Her bir bağlantı için birer bağlantı bilgisi tutulur. Nesne/Değer (Element) Ana düğüm (Parent node) Çocuk düğümlerin listesi Problem: Bir sonraki elemanın çocuk sayısını bilmiyoruz. Daha iyisi: Çocuk/Kardeş Gösterimi Her düğümde iki bağlantı bilgisi tutularak hem çocuk hem de yandaki kardeş tutulabilir. İstenildiği kadar çocuk/kardeş olabilir. JAVA Declaration class AgacDugumu { int eleman; AgacDugumu ilkcocuk; AgacDugumu kardes; }

15 Ağaç Türleri En çok bilinen ağaç türleri ikili arama ağacı olup kodlama ağacı, sözlük ağacı, kümeleme ağacı gibi birçok ağaç uygulaması vardır. İkili Arama Ağacı (Binary Search Tree): İkili arama ağacında bir düğüm en fazla iki tane çocuğa sahip olabilir ve bağlantıları belirli bir sırada yapılır. Kodlama Ağacı (Coding Tree): alt/çocuk Bir kümedeki karakterlere kod ataması için kurulan ağaç şeklidir. Bu tür ağaçlarda kökten başlayıp yapraklara kadar olan yol üzerindeki bağlantı değerleri kodu verir. Sözlük Ağacı(Dictonary Tree): Bir sözlükte bulunan sözcüklerin tutulması için kurulan bir ağaç şeklidir. Amaç arama işlemini en performanslı bir şekilde yapılması ve belleğin optimum kullanılmasıdır. Kümeleme Ağacı (Heap Tree): Bir çeşit sıralama ağacıdır. Çocuk düğümler her zaman aile düğümlerinden daha küçük değerlere sahip olur.

16 İkili Ağaç (Binary Tree) : Sonlu düğümler kümesidir. Bu küme boş bir küme olabilir (empty tree). Boş değilse şu kurallara uyar. Kök olarak adlandırılan özel bir düğüm vardır. Her düğüm en fazla iki düğüme bağlıdır. Left child : Bir node un sol işaretçisine bağlıdır. Right child : Bir node un sağ işaretçisine bağlıdır. Kök hariç her düğüm bir daldan gelmektedir. Tüm düğümlerden yukarı doğru çıkıldıkça sonuçta köke ulaşılır.

17 İkili Ağaç (Binary Tree) : Bilgisayar bilimlerinde en yaygın ağaçtır. Kök A C D A A P Z I B B M Sağ alt ağaç K İki farklı ikili ağaç

18 İkili Ağaç (Binary Tree) N tane düğüm veriliyor, İkili ağacın minimum derinliği nedir. Derinlik 1: N = 1, 1 düğüm 2 1-1 Derinlik 2: N = 2, 3 düğüm, 2 2-1 düğüm Herhangi bir d derinliğinde, N =? Derinlik d: N = 2 d -1 düğüm (tam bir ikili ağaç) En küçük derinlik: Θ(log N)

19 İkili Ağaç N düğümlü ikili ağacın minimum derinliği: Θ(log N) İkili ağacın maksimum derinliği ne kadardır? Dengesiz ağaç: Ağaç bir bağlantılı liste olursa! Maksimum derinlik = N Amaç: Arama gibi operasyonlarda bağlantılı listeden daha iyi performans sağlamak için derinliğin log N de tutulması gerekmektedir. Bağlantılı liste Derinlik = N

20 İkili Ağaç Bağlı Liste Yapısı node deger Left child Right child

27 Complete Binary Tree Complete incomplete