AĞAÇ-TREE VERİ YAPISI

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "AĞAÇ-TREE VERİ YAPISI"

Transkript

1 AĞAÇ-TREE VERİ YAPISI

2 AĞAÇ-TREE Ağaç; verileri birbirine hiyerarşik(sıradüzensel) bir biçimde sanal olarak bağlayan, doğrusal olmayan bir veri yapısıdır. Doğada bulunan biyolojik ağaçlardaki ve aile soyağacındaki hiyerarşik yapıya benzetilerek adlandırılmıştır.

3 AĞAÇ-TREE Ağaç; bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir yapıya sahiptir. Üniversite Fakülte Yüksekokul Enstitü Bölüm Program Ana Bilim Dalı Bilim Dalı

4 Ağaç Uygulama Alanları Ağaç veri yapısı, bilgisayar biliminde birçok problemin çözümüne temel oluşturur: İşletim sistemlerindeki dosya organizasyonu bir çeşit ağaç yapısıdır. Genel bir işletim sistemi dosya organizasyonu Windows işletim sistemi dosya organizasyonu

5 Ağaç Uygulama Alanları Veri Tabanı Yönetim Sistemlerinde, Sıkıştırma Algoritmalarında, Oyun programlarında hamle seçeneklerinin belirlenmesi gibi birçok uygulamada ağaç veri yapısı algoritmik çözüm sunar. Ağaç veri yapısı mantıksal düşünceye sığdığı sürece çok değişik şekillerde kurulabilir. Veri Tabanı ağacı hiyerarşik alan adı(dns) ağacı Tic Tac Toe(XOX) oyunu hamle ağacı

6 AĞAÇ:Temel Kavramlar (Terminoloji) Hiyerarşik yapı gereği aile soyağacında geçen birçok kavram(çocuk, kardeş düğüm, aile, ata) ağaç veri yapısında da tanımlıdır. Genel olarak veri, ağacın düğümlerinde tutulur, dallar ise düğümlerin birbiri ile bağlantısını gösterir.

7 AĞAÇ:Temel Kavramlar (Terminoloji) 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 (Descendant) : Aile düğümünün daha üstünde kalan düğümlere ata, bir düğümün çocuğuna bağlı olan düğümlere torun denir.

8 AĞAÇ:Temel Kavramlar (Terminoloji) 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) :İki 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. Derinlik (Depth): Bir düğümün köke olan uzaklığı 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.

9 AĞAÇ:Temel Kavramlar ÖRNEK Tanım Değer Düğüm sayısı: 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

10 Ağaç Türleri İkili Ağaçlar (Binary Tree): İkili ağaçlarda bir düğüm en fazla iki tane çocuğa sahip olabilir. Kodlama Ağacı (Coding Tree): Bir kümedeki karakterlere kod ataması için kurulan ağaç şeklidir. 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. Dolayısıyla kök düğüm en büyük değere sahip olurken, yapraklar kendi ailesi içerisinde en küçük değerlere sahip olurlar.

11 İkili Ağaçlar(Binary Trees) ve Çeşitleri Bir ağaçta her düğümün en fazla iki çocuğu varsa bu ağaca İkili Ağaç(Binary Tree) denir. Bir ağaçtaki her düğümün derecesi en fazla iki ise o ağaca İkili Ağaç denir. A İkili Ağaç DEĞİL A İkili Ağaç B D E B F C F C E F D G G I H

12 İkili Ağaçların Özellikleri İkili Ağaçlar 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 düğümün sol işaretçisine bağlıdır. Right child : Bir düğümün 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. İkili bir ağaçta i. düzeydeki düğümlerin maksimum sayısı :2 (i 1) dir. k derinliğinde (depth) olan ikili bir ağaçta düğümlerin maksimum sayısı 2k 1 dir. (k 1)

13 İkili Ağaçlarda Gezinti/Geçiş(Traverse) İşlemleri Gezinti/ Geçiş (traverse); çeşitli kriterlere göre düğümleri yalnızca bir kez ziyaret ederek tüm ağacı dolaşmaktır. Ağaçlar üzerindeki gezinti işlemleri; arama, ağaçtaki tüm bilgilerin listelenmesi vb. başka amaçlarla yapılır. Ağaçların düğümleri doğrusal olmadığından(hiyerarşik) farklı algoritmalar uygulanır.

14 İkili Ağaçlarda Gezinti/Geçiş(Traverse) İşlemleri Bir ağacı dolaşırken bir düğüme ilişkin olarak veri, sol alt ağaç, sağ alt ağaç söz konusu olduğundan dolayı dolaşma sırası 6 farklı biçimde olabilir: 1) Veri Sol Sağ (preorder = kök başta) veya 2) Veri Sağ Sol (preorder = kök başta) 3) Sol Veri Sağ (inorder = kök ortada) veya 4) Sağ Veri Sol (inorder = kök ortada) 5) Sol Sağ Veri (postorder = kök sonda) veya 6) Sağ Sol Veri (postorder = kök sonda)

15 Preorder (Kök Başta) Gezinti Bir düğüm, onun alt nesillerinden önce ziyaret edilir. Yani düğümler arasında Kök-Sol Alt Ağaç-Sağ Alt Ağaç sırasıyla gezilir. Algoritma: Köke uğra Sol alt ağacı preorder olarak dolaş. Sağ alt ağacı preorder olarak dolaş. C Kodları: /* Ağacın preorder dolaşılması */ /* Dikkat preorder fonksiyonu özyinelemeli*/ void preorder(agacdugumptr agacptr) { if (agacptr!= NULL) { cout<<agacptr->data; preorder(agacptr->soldal); preorder(agacptr->sagdal); } }

16 Inorder (Kök Ortada) Gezinti Bir düğüm, sol alt ağaçtan sonra ve sağ alt ağaçtan önce ziyaret edilir. Yani; düğümler arasında Sol Alt Ağaç -Kök-Sağ Alt Ağaç sırasıyla gezilir. Algoritma: Sol alt ağacı inorder'a göre dolaş Köke uğra Sağ alt ağacı inorder'a göre dolaş. C Kodları: /* Agacın inorder dolaşılması */ /* Dikkat inorder fonksiyonu özyinelemeli*/ void inorder(agacdugumptr agacptr) { if (agacptr!= NULL) { inorder(agacptr->soldal); cout<<agacptr->data; inorder(agacptr->sagdal); } }

17 Postorder (Kök Sonda) Gezinti Bir düğüm, onun alt nesillerinden sonra ziyaret edilir. Yani; düğümler arasında Sol Alt Ağaç - Sağ Alt Ağaç-Kök sırasıyla gezilir. Algoritma: Sol alt ağacı postorder'a göre dolaş Sağ alt ağacı postorder'a göre dolaş. Köke uğra C Kodları: /* Ağacın postorder dolaşılması */ /* Dikkat postorder fonksiyonu özyinelemeli*/ void postorder(agacdugumptr agacptr) { if (agacptr!= NULL) { postorder(agacptr->soldal); postorder(agacptr->sagdal); printf("%d",agacptr->data); } }

18 ÖRNEK A B B C D D E F G H I Kök Önde-PreOrder : ABDGCEHIF Kök Ortada-InOrder : DGBAHEICF Kök Sonda-PostOrder : GDBHIEFCA

19 ÖRNEK: Aritmetik ifadelerin infix, prefix ve postfix biçimleriyle kök ortada(inorder),kök-başta(preorder) ve kök sonda(postorder) dolaşma arasında bir bağlantı vardır. Aşağıda ağaç yapısı verilen aritmetik ifadenin ön-işleç(prefix) biçimi ağaç kök önde(preorder) dolaşarak elde edilebilir. + / * * D C E Kök-ortada(infix): ((((A/B)*C)*D)+E) Kök-başta (prefix): +**/ABCDE Kök-sonda:??? A B

20 İkili Ağaç Çeşitleri İkili Arama Ağacı(Binary Search Tree-BST) Bir İkili Ağacın, İkili Arama Ağacı olması için; Her düğümdeki değerinin, sol alt ağacında bulunan tüm düğümlerin değerlerinden büyük, sağ alt ağacında bulunan tüm düğümlerin değerlerinden de küçük olmasıdır İkili arama ağacı ikili arama ağacı DEĞİL

21 İkili Arama Ağacı (Binary Search Tree-BST) Bağlı Liste veri yapısında tüm elemanların işlenmesi(örneğin arama işlemi gibi) n, listedeki eleman sayısı olmak üzere O(n) zaman almaktadır. İşlem zamanını kısaltmak veri yapılarının en önemli amaçlarından biridir. İkili ağaç yapısı arama, ekleme, silme gibi işlemleri h ağacın derinliğini göstermek üzere O(h) zamanda yapılmasını sağlar.

22 İkili Arama Ağacı (Binary Search Tree-BST) SORU: 3, 5, 7, 9, 11 kümesiyle derinliği 3, 4 ve 5 olan ikili arama ağaçları çiziniz. Bu kümeyle 2 derinliğinde bir ağaç çizilebilir mi? Neden?

23 İKİLİ ARAMA AĞACININ HAFIZADA TEMSİLİ Ağaç yapısını meydana getiren düğüm yapısı grafiksel gösterim: *soldal data *sagdal Ağaç yapısını meydana getiren düğüm yapısı(tamsayılar için) C Kodu: /* Ağaca ait düğüm yapısı tanımlanıyor */ struct dugum{ int icerik; struct dugum *sol; struct dugum *sag; }; typedef struct dugum Dugum; typedef Dugum * Dugumptr;

24 İKİLİ ARAMA AĞACININ HAFIZADA TEMSİLİ Ağaç yapısı grafiksel gösterim: Kök düğüm *soldal data *sagdal *soldal data *sagdal *soldal data *sagdal *soldal data *sagdal *soldal data *sagdal *soldal data *sagdal *soldal data *sagdal *soldal data *sagdal

25 İKİLİ ARAMA AĞACININ HAFIZADA TEMSİLİ Tamsayılar içeren ikili arama ağacı C Kodu: /*Tamsayılar içeren ikili arama ağacı tanımı*/ struct agac{ Dugumptr kok; }; typedef struct agac Agac; typedef Agac *Agacptr;

26 Yeni düğüm oluşturma fonksiyonu Dugumptr yeni_dugum(int icerik){ Dugumptr dugum; dugum= (Dugum *) malloc (sizeof (Dugum)); dugum->icerik=icerik; dugum->sol=null; dugum->sag=null; return dugum; }

27 Yeni ağaç oluşturma fonksiyonu Agacptr yeni_agac(){ Agacptr agac; agac= (Agac *) malloc (sizeof (Agac)); agac->kok=null; return agac; }

28 Ağaç işlemleri EKLEME O(h) ARAMA O(h) SİLME O(h) AĞAÇTA DOLAŞMA O(h)

29 İkili Arama Ağaçlarında EKLEME(düğüm) İşlemi Ekleme işlemi, İkili Arama Ağacı kurmayı ve kurala uygun olarak yeni elemanlar eklemeyi sağlar. İkili arama ağacını kurmada verilerin geliş biçimi (ağaca ekleniş sırası) önemlidir.

30 İkili Arama Ağaçlarında EKLEME(düğüm) İşlemi Verilerin geliş sırası 47, 55, 49, 26, 34, 17, 52, 84, 93 şeklinde olursa aşağıdaki şekilde bir ikili ağaç oluşur(derinlik: 4)

31 İkili Arama Ağaçlarında EKLEME(düğüm) İşlemi Verilerin geliş sırası 26,17, 47, 93, 84, 52, 34, 55, 49 şeklinde olursa aşağıdaki şekilde bir ikili ağaç oluşur(derinlik: 6) SORU: Verilerin geliş sırası k.ten-b.ğe sıralı veya b.ten-k.ğe sıralı olsa ağacın durumu nasıl olur? İki ayrı şekil ile gösteriniz. Her iki durum için derinlik ne olur?

32 İkili Arama Ağaçlarında EKLEME(düğüm) İşlemi Ekleme Nasıl Yapılır? Gelen veri, kökten itibaren ağaçta aranır. Daha büyük değerli bir düğüme rastlanırsa sol çocuğuna, daha küçük değerli bir düğüme rastlanırsa sağ çocuğuna ilerlenir. Eğer aynı değer bulunursa ikili arama ağacının tanımına aykırı olacağından ağaca ekleme yapılamaz. Arama göstergesinin son kaldığı konuma(değeri ararken ilk rastladığı NULL göstergenin yerine) öğe eklenir.

33 İkili Arama Ağaçlarında EKLEME(düğüm) İşlemi-O(h) / * Arama agacina yeni bir eleman(dugum) ekleyen fonksiyon C kodları*/ void agaca_ekle(agacptr a, Dugumptr yeni){ Dugumptr y=null; Dugumptr x=a->kok; while(x!=null){ y=x; if(yeni->icerik<x->icerik) else x=x->sag;} if(y==null) a->kok=yeni; else if(yeni->icerik <y->icerik) else y->sag=yeni; } x=x->sol; y->sol=yeni;

34 İkili Arama Ağacında ARAMA İşlemi-O(h) İkili arama ağaçlarındaki en önemli işlemlerden birisi aramadır Örnek olarak yandaki ağaçta, 44 sayısını aramak için şu işlem sırası izlenir: Karşılaştırma 1 : 44, 47 ile karşılaştırılır. 44<47 olduğundan sol daldan ilerlenir. Karşılaştırma 2 : 44, 25 ile karşılaştırılır. 44>25 olduğundan sağ daldan ilerlenir. Karşılaştırma 3: 44, 43 ile karşılaştırılır. 44>43 olduğundan sağ daldan ilerlenir. Karşılaştırma 4: 44 == 44 Aranan anahtar değeri ağaçta bulundu! Örnek olarak aşağıdaki ağaçta, 9 sayısını aramak için şu işlem sırası izlenir: Karşılaştırma 1: 9, 47 ile karşılaştırılır. 9>47 olduğundan sağ daldan ilerlenir. Karşılaştırma 2 : 9, 77 ile karşılaştırılır. 9>77 olduğundan sağ daldan ilerlenir. Karşılaştırma 3 : 9, 93 ile karşılaştırılır. 9<93 olduğundan sol daldan ilerlenir. : NULL. Aranan anahtar değeri ağaçta bulunamadı.

35 İkili Arama Ağacında ARAMA İşlemi-O(h) /*Verilen bir degeri ikili arama agacinda arayan özyinelemeli fonksiyon C kodları*/ Dugumptr agac_ara(dugumptr d, int eleman){ if(!d) return NULL; if(d->icerik==eleman) return d; else if(d->icerik>eleman) return agac_ara(d->sol,eleman); else return agac_ara(d->sag,eleman); }

36 İkili Arama Ağacında ARAMA İşlemi-O(h) /*Verilen bir degeri ikili arama agacında arayan iteratif(özyinelemesiz) fonksiyon C kodları*/ Dugumptr agac_ara2(agacptr a, int eleman){ Dugumptr d; d=a->kok; while (d!=null){ if(d->icerik==eleman)return d; else if(d->icerik>eleman) d=d->sol; else d=d->sag; } return NULL;}

37 İkili Arama Ağacında SİLME(düğüm) İşlemi İkili arama ağacında herhangi bir düğüm silindiğinde bu düğüme bağlı olan çocukların dikkate alınması gerekmektedir. 3 farklı durum söz konusudur: i).silinecek olan düğüm yaprak ise silme işlemi hemen gerçekleştirilir.

38 İkili Arama Ağacında SİLME(düğüm) İşlemi ii). Silinecek olan düğüm eğer bir çocuğa sahip ise, o düğümün atasının pointer bilgisini alt düğüme (çocuğa) aktarmak gerekir.

39 İkili Arama Ağacında SİLME(düğüm) İşlemi iii). Silinecek olan düğüm eğer iki çocuğa sahip ise, silinen düğümün yerine o düğümün sağ alt ağacındaki en küçük anahtar değeri getirilir. Daha sonra ise sağ alt ağaçtan taşınan anahtar değeri silinir.

40 İkili Arama Ağacında SİLME(düğüm) İşlemi /*Arama agacindan bir düğüm/ eleman silen fonksiyon C kodları*/ void agac_sil(agacptr a, int icerik){ Dugumptr y,x=a->kok; while (x->icerik!= icerik){ if( x->icerik>icerik) x=x->sol; else x=x->sag;} while(1){ y=azami_ara(x->sol); if(y==null) y=asgari_ara(x->sag); if(y==null) break; x->icerik=y->icerik; x=y; }}

41 İkili Arama Ağacında En küçük elemanı bulma İşlemi /*Arama agacındaki en kücük elemanı bulan fonksiyon*/ Dugumptr asgari_ara(dugumptr d){ if (d ==NULL) return NULL; Dugumptr sonuc=d; while (sonuc->sol) sonuc=sonuc->sol; return sonuc; }

42 İkili Arama Ağacında En küçük elemanı bulma İşlemi /* Arama ağacındaki en küçük elemanı bulan özyinelemeli fonksiyon*/ Dugumptr asgari_ara2(dugumptr d){ if (d->sol== NULL) return d; else return asgari_ara2(d->sol); }

43 İkili Arama Ağacında En büyük elemanı bulma İşlemi /* Arama ağacındaki en büyük elemanı bulan fonksiyon*/ Dugumptr azami_ara(dugumptr d){ if (d ==NULL) return NULL; Dugumptr sonuc=d; while (sonuc->sag) sonuc=sonuc->sag; return sonuc; }

44 İkili Arama Ağacında En büyük elemanı bulma İşlemi /* Arama ağacındaki en büyük elemanı bulan özyinelemeli fonksiyon*/ Dugumptr azami_ara2(dugumptr d){ if (d->sag== NULL) return d; else return azami_ara2(d->sag); }

45 İkili Ağaç Çeşitleri Hatırlanacağı üzere; İkili ağaç yapısı arama, ekleme, silme gibi temel işlemleri h ağacın derinliğini/yüksekliğini göstermek üzere O(h) zamanda yapılmasını sağlar. İkili ağaçların özel bir çeşidi olan İkili arama ağaçlarında da bu temel işlemler ağacın yüksekliği/derinliği ile yakından ilişkilidir. Yani, ikili arama ağacı üzerinde yapılacak ekleme/silme işlemi aynı zamanda ağacın dengesini etkiler ve bazı durumlarda dengenin değişmesine neden olur.

46 İkili Ağaç Çeşitleri N elemanlı(düğümlü) bir İkili arama ağacı dengeli olduğu sürece ağaçta arama, ekleme, silme gibi temel işlemler O(log 2 N) [N: düğüm(eleman) sayısıdır] zamanda gerçekleşmektedir.

47 İkili Ağaç Çeşitleri Örneğin; Ekleme sırası {1, 2, 3, 4, 5} şeklinde olan sayıların boş bir ikili ağaca eklenmesi sonucunda ağacın grafiksel görünümü aşağıdaki gibi olur;

48 İkili Ağaç Çeşitleri Bu şekilde dengeli olmayan bir ikili arama ağacında; ağacın yüksekliği düğüm/eleman sayısına eşittir. N elemanlı dengeli olmayan bir ikili arama ağacında arama işlemi O(N) zaman alacaktır. Böyle bir ikili arama ağacının bir bağlı liste veri yapısına dönüştüğü söylenebilir. Zaman açısından O(n)> O(log 2 N) olduğundan ikili arama ağaçlarında ağacın dengede olmaması yani dengeli bir ağaç olmaması önemli bir problemdir.

49 İkili Ağaç Çeşitleri İkili arama ağaçları dengeli olabilirse bir anahtar değerini aramak oldukça hızlıdır. Ağacın dengeli olması durumunda N elemanlı(düğümlü) bir ağaç; en fazla log 2 N düzeyden oluşur. Bu durumda bir anahtar değerin bulunması veya ağaçta olmadığının belirlenmesi için en fazla log 2 N karşılaştırma yapılır. Örneğin 1 elemanlı bir ikili arama ağacında bir elemanın bulunabilmesi için en fazla log 2 1= karşılaştırma yapmak gerekecektir. Bağlı Listelerde (linked List) ise aranan elemanın değerine göre (eleman sonda olabilir) 1 karşılaştırma yapmak gerekebilir.

50 DENGELİ İKİLİ AĞAÇ (BALANCED BINARY TREE) Dengeli ağaç (balanced tree); Gelişmesini tüm dallarına homojen olarak yansıtacak biçimde yüksekliği dengelenen ağaç çeşididir. Bu özellikteki ağaca literatürde yükseklik dengeli ağaç da denilmektedir.

51 DENGELİ İKİLİ AĞAÇ (BALANCED BINARY TREE) Tanım: Herhangi bir düğümüne bağlı sol ve sağ alt ağaçların yükseklikleri arasındaki fark en fazla 1 (bir) olmalıdır(şekil a ve b).

52 DENGELİ İKİLİ AĞAÇ (BALANCED BINARY TREE) Bir dalın fazla büyümesi ağacın dengesini bozar ve ağaç üzerinde yapılan işlemlerin yürütme zamanı doğrusal bağıntılara dönüşür. Dolayısıyla ağaç veri yapısının en önemli getirisi kaybolmaya başlar. Yapılan istatistiksel çalışmalarda, ağacın oluşturulması için gelen verilerin rastgele olması durumda ağacın dengeli olduğu veya çok az sapma gösterdiği gözlenmiştir.

53 DENGELİ İKİLİ AĞAÇ (BALANCED BINARY TREE) İkili Arama Ağacı(BST) işlemlerini daha kısa sürede gerçekleştirmek için birçok BST dengeleme algoritması geliştirilmiştir. Bunlardan bazıları; Adelson-Velskii ve Landis (AVL) ağaçları (1962) Splay ağaçları (1978) B-ağacı ve diğer çok yönlü arama ağaçları (1972) Red-Black ağaçları (1972) Simetrik İkili B-Ağaçları(Symmetric Binary B-Trees) dir

54 AVL AĞACI AVL( G.M. Adelson-Velskii and E.M. Landis) yöntemine göre kurulan bir ağaç, ikili AVL arama ağacı olarak adlandırılır. AVL ağacının özelliği; sağ alt ağaç ile sol alt ağaç arasındaki yükseklik farkının en fazla bir düğüm olmasıdır. Bu kural ağacın tüm düğümleri için geçerlidir. Normal ikili arama ağaçları için ekleme ve silme algoritmaları, ikili AVL ağaçları üzerinde ağacın yanlış şekil almasına, yani ağacın dengesinin bozulmasına neden olur.

55 AVL Ağaçları Tanım: 1.Boş bir ağaç AVL ağacıdır. 2.Eğer T boş olmayan TL ve TR şeklinde sol ve sağ alt ağaçları olan ikili arama ağacı ise, T aşağıdaki şartları sağlarsa AVL ağacı şeklinde isimlendirilir. TL ve TR AVL ağaçları ise hl ve hr, TL ve TR nin yükseklikleri olmak üzere hl hr <= 1 olmak zorundadır.

56 AVL AĞACI hl=hr±1 hr=hl±1 TL TR

57 AVL Ağaçları- Denge Faktörü[Balance Factor] AVL ağaçları dengeli ikili arama ağaçlarıdır. Her bir düğümün sol ve sağ alt ağaçlarının yükseklikleri arasındaki fark en fazla 1 olabilir. Bir düğümdeki denge faktörü(bf)= hl - hr AVL ağaçlarında denge faktörü (balance factor-bf) sadece -1,, 1 olabilir. hl=hr ise BF= hl>hr ise BF= 1 hl<hr ise BF= -1

58 ÖRNEK1 İçeriği 7 olan düğüm için BF hesaplanması; hl=2, hr=2 olduğundan BF=hL-hR= olur Kırmızı numaralar balans faktörüdür. 9 İçeriği 8 olan düğüm için BF hesaplanması; hl=, hr=1 olduğundan BF= -1 olur.

59 ÖRNEK2 AVL AĞACI DEĞİL İçeriği 7 olan düğüm için BF hesaplaması: hl=3, hr=1 olduğundan BF=2>1(denge bozulur) dir. 1 4 Soru: Diğer düğümler için BF leri siz hesaplayınız. 3 5

60 ÖRNEK AVL Ağacı 7 9 AVL Ağacı Değildir AVL Ağacı AVL Ağacı Değildir AVL Ağacı AVL Ağacı Değildir Kırmızı numaralar balans faktörüdür.

61 AVL AĞACININ HAFIZADA TEMSİLİ AVL Ağaç yapısını meydana getiren düğüm yapısı grafiksel gösterim: *soldal data yukseklik *sagdal AVL Ağaç yapısını meydana getiren düğüm yapısı(tamsayılar için) C Kodu: /* Ağaca ait düğüm yapısı */ struct avldugum { struct avldugum *sol,*sag; int data;/*ağaçta tutulacak verinin tipine göre bu tanım değişebilir*/ int yukseklik;};

62 AVL AĞACININ HAFIZADA TEMSİLİ Aşağıda, bu yapıya uygun olarak örnek değişken tanımları ve AVL ağacı için düğüm oluşturma işlemi yer almaktadır: typedef struct avldugum Avldugum; typedef Avldugum * Avldugumptr; Avldugumptr yeni_avldugum(int y_veri){ Avldugumptr dugum; dugum=(avldugum *)malloc(sizeof(avldugum)); dugum->veri=y_veri; dugum->sol=null; dugum->sag=null; dugum->yukseklik=1; return dugum;}

63 AVL dugum tanımını kullanan boş bir struct avlagac{ Avldugumptr kok;}; AVL Ağacı oluşturma typedef struct avlagac Avlagac; typedef Avlagac *Avlagacptr; Avlagacptr yeni_avlagac(){ Avlagacptr agac; agac=(avlagac *)malloc(sizeof(avlagac)); agac->kok=null; return agac; }

64 AVL ağacı yüksekliğini-boyunu bulma int boy(avldugumptr d){ if(d==null) return ; else return d->yukseklik; }

65 AVL Ağacında Dengenin Sağlanması: Problem: Ekleme işlemi bazı durumlarda ekleme noktasına göre kök olan bölgelerde denge faktörünün 2 veya -2 olmasına neden olabilir. Çözüm Yolu: Yeni düğümü ekledikten sonra; Denge faktörü düzelterek köke doğru çık. Eğer düğümün denge faktörü 2 veya -2 ise ağaç bu düğüm üzerinde döndürülerek düzeltilir.

66 AVL Ağacında Dengenin Sağlanması: AVL ağacı Eklendikten sonra > AVL AĞACI DEĞİL

67 Denge Sağlama-Rotasyon/Döndürme: Örnek AVL Ağacı Eklendikten sonra > AVL AĞACI DEĞİL DÖNDÜRME/Rotasyon UYGULANARAK DENGE SAĞLANDI

68 AVL Ağacı - Ekleme (1) P düğümünün dengeyi bozan düğüm olduğu düşünülürse bu düğüm; P pivot düğüm şeklinde isimlendirilir. Eklemeden sonra köke doğru çıkarken BF nin 2 veya -2 olduğu ilk düğümdür. P P Pivot: bf 2 veya -2 L R A B C D

69 4 farklı durum vardır: Dış Durum (tek döndürme gerektiren) : P nin sol alt ağacının soluna eklendiğinde (LL Dengesizliği). P nin sağ alt ağacının sağına eklendiğinde (RR Dengesizliği) İç Durum (2 kez döndürme işlemi gerektiren) : P nin sol alt ağacının sağına eklendiğinde (RL Dengesizliği) P nin sağ alt ağacının soluna eklendiğinde(lr Dengesizliği)

70 I). LL Dengesizliği & Düzeltme LL Dengesizliği: P nin sol alt ağacının soluna eklediğimizde (A alt ağacınına) P nin BF si 2 L nin BF si veya 1 Düzeltme: P etrafında sağa doğru döndürme.

71 ÖRNEK: LL Dengesizliği & Düzeltme LL Dengesizliği: P(4) ün bfsi 2 L(3) ün bfsi veya Ekle(2) Döndür Başlangıçtaki AVL Ağacı 2 2 eklendikten sonra ağacın durumu 2 Pivotun belirlenmesi LL Düzeltmesi yapıldıktan sonra AVL ağacı

72 II). RR Dengesizliği & Düzeltme: RR Dengesizliği: P nin sağ alt ağacının sağına eklendiğinde (D alt ağacına eklendiğinde) P bf = -2 R bf = veya -1 Düzeltme: P etrafında sola doğru döndürme

73 ÖRNEK: RR Dengesizliği & Düzeltme: 1-1 Ekle(4) 1-2 Döndür eklendikten sonra ağacın durumu RR Düzeltmesi yapıldıktan sonra AVL ağacı Balans faktörü düzelterek köke doğru ilerle ve 1 u pivot olarak belirle Dengesizliğin türünün belirlenmesi RR Dengesizliği: P(1) bf = -2 R(2) bf = veya -1

74 III). LR Dengesizliği & Düzeltme: LR Dengesizliği: P nin sol alt ağacının sağına eklendiğinde (LR ağacına) P bf = 2 L bf = -1 Düzeltme: L & P etrafında 2 kez döndürme

75 ÖRNEK: LR Dengesizliği & Düzeltme 1 1 Ekle(5) 2 1 Döndür Başlangıçtaki AVL Ağacı 5 LR Düzeltmesinden sonra ağacın durumu Balans faktörü düzelterek köke doğru ilerle ve 1 u pivot olarak belirle 5 eklendikten sonra ağacın durumu Dengesizliğin türünün belirlenmesi LR Dengesizliği: P(1) bf = 2 L(4) bf = -1

76 IV). RL Dengesizliği & Düzeltme: RL Dengesizliği: P nin sağ alt ağacının soluna eklendiğinde (RL alt ağacına) P bf = -2 R bf = 1 Düzeltme: R & P etrafında 2 kez döndürme.

77 ÖRNEK: RL Dengesizliği & Düzeltme Başlangıçtaki AVL Ağacı Ekle(17) Balans faktörü düzelterek köke doğru ilerle ve 1 u pivot olarak belirle eklendikten sonra ağacın durumu 3 Döndür RL Dengesizliği: P(1) bf = -2 R(2) bf = 1 Dengesizliğin türünün belirlenmesi RL Düzeltmesi yapıldıktan sonra AVL ağacı 2 1 3

78

79

Ağaç (Tree) Veri Modeli

Ağaç (Tree) Veri Modeli 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

Detaylı

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

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli Veri Modelleri Ağaç Veri Modeli Ağaç Veri Modeli Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen bir veri modelidir. Ağaç veri modeli daha fazla bellek

Detaylı

Veri Yapıları. Ağaçlar

Veri Yapıları. Ağaçlar Veri Yapıları Ağaçlar 1 Ağaç Veri Modeli Temel Kavramları 2 Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir. Aile soyağacında olduğu gibi hiyerarşik

Detaylı

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

AĞAÇLAR. Doç. Dr. Aybars UĞUR AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş 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 (Şekil

Detaylı

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

Ağaçlar (Trees) Ağaçlar (Trees) Giriş Binary Trees (İkilik Ağaçlar) Full Binary Trees Proper Binary Trees Complete Binary Trees Heap Binary Trees Balanced Binary Trees Binary Search Trees (İkilik Arama Ağaçları) Yrd.Doç.Dr. M. Ali Akcayol

Detaylı

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

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 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ı

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları 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

Detaylı

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

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş 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 (Şekil

Detaylı

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

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 > = Week 9: Trees 1. TREE KAVRAMI 2. İKİLİ AĞAÇ VE SUNUMU 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI < 6 2 > = 1 4 8 9 1. TREES KAVRAMI Bir ağaç bir veya daha fazla düğümün (T) bir kümesidir : Spesifik olarak

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

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

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK AVL Agacı {\} /\ Suhap SAHIN Onur GÖK AVL (Adel son-vel skiĭ) Landis Agacı AVL Agacı: Dengeli ikili agaç Denge Faktörü Kök isaretçisi A B c D E D E Agaç Veri Modeli Yükseklik Kök (root) A 2 B C 1 D E F

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları 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 - 8 Problem Tanımı Arama Ağaçları İkili Arama

Detaylı

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

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1 Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1 İçerik Temel Kavramlar Ağaçlarda Dolaşım İkili Ağaçlar (Binary Trees) İkili Arama Ağacı (Binary Search Tree ve Temel İşlemler Kütük Organizasyonu 2

Detaylı

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

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik

Detaylı

BIL222 Veri Yapıları ve Algoritmalar

BIL222 Veri Yapıları ve Algoritmalar BIL222 Veri Yapıları ve Algoritmalar 1. ĠKĠLĠ AĞAÇLAR (BIARY TREES) Bütün düğümlerinin derecesi en fazla iki olan ağaca ikili ağaç denir. Yani bir düğüme en fazla iki tane düğüm bağlanabilir ( çocuk sayısı

Detaylı

BIP116-H14-1 BTP104-H014-1

BIP116-H14-1 BTP104-H014-1 VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

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

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 Bölüm 5. Ağaç Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 73 O. T. Yıldız, C && Java ile Veri Yapılarına, Boğaziçi Üniversitesi Yayınevi,

Detaylı

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

Ağaçlar(Trees) AĞAÇ VERİ MODELİ Ağaçlar(Trees) AĞAÇ VERİ MODELİ Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyerarşik yapıya sahip bir veri modelidir; bilgisayar yazılım

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

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

7.Hafta Dengeli Arama Ağaçları (Red - Black Tree) 7.Hafta Dengeli Arama Ağaçları (Red - Black Tree) Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme Dengeli arama ağaçları Red - Black Tree Kırmızı-siyah

Detaylı

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

Veri Yapıları. Ağaçlar. Ağaçlar genel bilgi Veri Yapıları Ağaçlar Dr. Sinan TUNCEL Ağaçlar genel bilgi Ağaçlar, fizikçi Gustava Kirşof tarafından 1847 de kablo ağlarındaki elektrik akışını formülize etmek için kullanılmıştır. Kirşof yasaları olarak

Detaylı

Final Sınavı Soruları Bahar 2018

Final Sınavı Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

Dengeli Arama Ağaçları (Balanced Search Tree)

Dengeli Arama Ağaçları (Balanced Search Tree) Dengeli Arama Ağaçları (Balanced Search Tree) AVL tree 2-3 ve 2-3-4 tree Splay tree Red-Black Tree B- tree 2 DENGELİ AĞAÇ (BALANCED TREE) Dengeli ağaç (balanced tree), gelişmesini tüm dallarına homojen

Detaylı

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ü

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ü 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ü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar

Detaylı

Dengeli Arama Ağaçları (Balanced Search Tree)

Dengeli Arama Ağaçları (Balanced Search Tree) Dengeli Arama Ağaçları (Balanced Search Tree) AVL tree 2-3 ve 2-3-4 tree Splay tree Red-Black Tree B- tree 2 DENGELİ AĞAÇ (BALANCED TREE) Dengeli ağaç (balanced tree), gelişmesini tüm dallarına homojen

Detaylı

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

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 S6 S7 Toplam HACETTEPE ÜNİVERSİTESİ 2012-2013 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 25.04.2013 Sınav Süresi:

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste Liste birbiriyle ilişkili verileri içeren bir kümedir, programlama açısından liste en basitinden bir dizi üzerinde tutulur. Dizi elemanları

Detaylı

Binary Tree nedir?uygulamas nasl yaplr?

Binary Tree nedir?uygulamas nasl yaplr? Yazar : Tu çe Kalkavan Web : tugcekalkavan.net admin@tugcekalkavan.net Bili³im Blo u Binary Tree nedir?uygulamas nasl yaplr? Bu bölümde veri yaplarnda önemli bir konu olan binary tree konusunu anlatmaya

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları 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 - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

Detaylı

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

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2014-2015 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 2. Ara Sınav 09.04.2015 Sınav Süresi: 90 dakika

Detaylı

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

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116- Veri Yapıları Dersi Proje#2 İkili Arama Ağacı, Heap, Hash Tabloları ve Çizgeler Veriliş Tarihi: 24.04.2018 Son Teslim Tarihi: 25.05.2018

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli Graf, matematiksel anlamda, düğümler ve bu düğümler arasındaki ilişkiyi gösteren kenarlardan oluşan bir kümedir; mantıksal ilişki düğüm ile düğüm

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

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

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi Graf Veri Modeli Graf, bir olay veya ifadenin düğüm ve çizgiler kullanılarak gösterilme şeklidir. Fizik, Kimya gibi temel bilimlerde ve mühendislik uygulamalarında ve tıp biliminde pek çok problemin çözümü

Detaylı

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

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları SOMEBODY ELSE'S ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları Yazan: Burak Kıymaz Derleyen: Serhan Aksoy @2016 Burak Kıymaz 28.10.2015 Veri Yapıları Abstrak veri yapıları: (Abstract

Detaylı

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

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi

Detaylı

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

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla

Detaylı

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

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1 Algoritmalar İkili Arama Ağaçları Bahar 2016 Doç. Dr. Suat Özdemir 1 İkili Arama Ağaçları Binary Search Tree (BST) İkili arama ağaçları dinamik veri işlemlerini gerçekleştiren veri yapılarıdır Search,

Detaylı

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ Azalt ve Fethet Algoritmaları Problemi daha küçük bir örneğine çevir: Küçük örneği çöz Çözümü asıl probleme genişlet 3 tipi vardır:

Detaylı

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

#$% &'#(# Konular. Binary Tree Structures. Binary Search Trees AVL Trees Internal Path Reduction Trees Deerlendirme !" #$% &'#(# Konular Binary Search Trees Deerlendirme Binary Search Trees Bir binary search tree üzerindeki her node hem data saklar hemde dier node lara ulaılırken yön belirler Bir binary search tree

Detaylı

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

Çok Yollu Ağaçlar: B*-Trees B*-Trees Çok Yollu Ağaçlar: B*-Trees B*-Trees B-tree lerde bir node dolunca bölme işlemi yapılmaktadır Bölme sonucunda oluşan iki node da yarı yarıya doludur B*-tree lerde bölme işlemi geciktirilerek node ların

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

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

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü Skip List(Atlamalı Liste) Veri Yapısı Seminer-30.03.2007/SkipList 1 Temel İhtiyaçlar Nelerdir? 1. Bilgisayarda verileri belirli yapıda

Detaylı

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

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR Çizgeler (Graphs) ve Uygulamaları Doç. Dr. Aybars UĞUR Giriş Şekil 12.1 : Çizge (Graph) Çizge (Graph) : Köşe (vertex) adı verilen düğümlerden ve kenar (edge) adı verilip köşeleri birbirine bağlayan bağlantılardan

Detaylı

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

Graflar bilgi parçaları arasındaki ilişkileri gösterirler. Graflar (Graphs) Graf gösterimi Uygulama alanları Graf terminolojisi Depth first dolaşma Breadth first dolaşma Topolojik sıralama Yrd.Doç.Dr. M. Ali Akcayol Graflar Graflar bilgi parçaları arasındaki ilişkileri

Detaylı

Arasınav Örnek Soruları Bahar 2018

Arasınav Örnek Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Örnek Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları 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 - 9 Hatırlatmalar Tam İkili Ağaç Eksiksiz İkili

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

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

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 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 BAĞLI LİSTE KAVRAMI Derleme zamanında boyutunun bilinmesine ihtiyaç

Detaylı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

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

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz 2014 Soru 1. (15 puan) 5,2,4,1,15,8,11,13,7,6 dizisinin elemanlarından maksimum özellikli bir yığın(heap) oluşturulmasını adım adım yazınız. Heapsort algoritmasının yardımıyla yapılacak sıralamayı anlatınız.

Detaylı

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

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Çarpışma çözümleme yöntemleri Sunum planı Bağlantıları kullanarak çarpışmaların çözümlenmesi. Coalesced Hashing (Birleştirilmiş

Detaylı

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

Algoritmalar. Kırmızı Siyah Ağaçları Red Black Trees. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Kırmızı Siyah Ağaçları Red Black Trees Bahar 2017 Doç. Dr. Suat Özdemir 1 Kırmızı Siyah Ağaç Red Black Trees (RBT) İkili arama ağaçlarının dengeli versiyonudur Ağaç yüksekliği O(lgn) dir Temel

Detaylı

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. DERS İÇERİĞİ VE KAYNAKLAR Veri Yapıları (VY) dersinde görülmesi muhtemel

Detaylı

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS BAĞLAÇLI LİSTELER LINKED LISTS Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır. Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı

Detaylı

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

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI YZM 2116- VERİ YAPILARI DERS#9: HASH FONKSİYONLARI İÇERİK Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing Çözümü Quadratic Probing Çözümü konusuna

Detaylı

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1 Algoritmalar Arama Problemi ve Analizi Bahar 2016 Doç. Dr. Suat Özdemir 1 Arama Problemi Sıralama algoritmaları gibi arama algoritmaları da gerçek hayat bilgisayar mühendisliği problemlerinin çözümünde

Detaylı

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

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 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 October 19, 2005 Copyright 2001-5 by Erik D. Demaine and

Detaylı

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

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR 2012-2013 Karakter Dizgisi Karakter Dizgisi Üzerine İşlemler Altdizgi Tanım 3.1.1: Bir X kümesi üzerinde bir karakter dizgisi (string)

Detaylı

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

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1 Dosyalarda Farklı Yaklaşımlar Kütük Organizasyonu 1 Giriş Şimdiye kadar öğrendiğimiz temel dosyalama komutlarıyla (fopen,flclose, fputs vb..) dosya oluşturabilmekte, kayıt ekleyebilmekte ve her bir kaydın

Detaylı

Alıştırma 1: Yineleme

Alıştırma 1: Yineleme Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:

Detaylı

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

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

Detaylı

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

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar Mühendisliği Bölümü, Bilgisayar Mühendisliğine Giriş Dersi için genel amaçlı veri yapıları hakkında

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

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

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 VERİ YAPILARI GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 GRAPH (ÇİZGE - GRAF) Terminoloji Çizge Kullanım Alanları Çizge Gösterimi Komşuluk Matrisi Komşuluk Listesi Çizge Üzerinde

Detaylı

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS BAĞLAÇLI LİSTELER LINKED LISTS Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır: Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı

Detaylı

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.

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. BÖLÜM 3 Karakter Dizgileriil i Tanım 3.1.1 Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki öğelerden oluşan bir sonlu dizidir. Hiç bir öğesi olmayan bir karakter dizgisine boş karakter

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme İşaretçi Kavramı

Detaylı

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

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) 1 10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) Kapsayan ağaç Spanning Tree (ST) Bir Kapsayan Ağaç (ST); G, grafındaki bir alt graftır ve aşağıdaki özelliklere sahiptir. G grafındaki tüm

Detaylı

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Ü

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Ü DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Sıralı erişimli dosya organizasyonu yöntemleri Sunum planı Sıralı erişimli dosya organizasyonu yöntemleri Basit sıralı

Detaylı

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

Yrd. Doç. Dr. Ümit ATİLA Yrd. Doç. Dr. Ümit ATİLA Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme. Bilgisayar sistemleri için veri sıralama çok önemlidir. Sıralama işlemi, hem arama işlemlerini hem de bir grup veriyi

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları 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 - 11 Bu bölümde, Graph (Çizge - Graf) Terminoloji Çizge Kullanım

Detaylı

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

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü Yığın İşlemleri Postfix, Prefix, Infix Yrd.Doç.Dr. M. Ali Akcayol 1 Yığındaki elemanlardan sadece en son eklenene erişim yapılır. Yığına ilk eklenen eleman en son elde edilir. FILO (First-in-Last-out)

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

Final Sınavı Örnek Soruları Bahar 2018

Final Sınavı Örnek Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Örnek Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

Detaylı

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

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları Fiziksel Tasarım Konuları Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları Fiziksel Tasarım İyi performans için Hızlı cevap zamanı Minimum disk erişimi Disk Yapısı İz(Track) Silindir

Detaylı

Arasınav Soruları Bahar 2018

Arasınav Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza Tarih

Detaylı

Bilgilerin Uzun Vadeli Saklanması

Bilgilerin Uzun Vadeli Saklanması 8 DOSYA SİSTEMS STEMİ Bilgilerin Uzun Vadeli Saklanması saklanacak veriler çok fazla olabilir veriler proses sonlandıktan sonra da kaybolmamalı bilgiye prosesler ortak olarak ulaşabilmeli 424 Dosya Sistemi

Detaylı

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

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31 Bölüm 6. Karma Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 31 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

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

#$% &'#(# Konular. B-Tree and Derivatives. B-Trees B#-Trees B+-Trees Deerlendirme !" #$% &'#(# Konular B+-Trees Deerlendirme B-Tree sequential ve direct eriimde iyi performansa sahiptir. Binary tree lerde branching factor ikiden büyük olamaz. B-Tree lerde teorik olarak limit yoktur.

Detaylı

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

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları BLM-112 PROGRAMLAMA DİLLERİ II Ders-7 Sıralama Algoritmaları Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme.

Detaylı

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

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15. Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology 6.046J/18.410J Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15 Problem Seti 4 Okumalar: Bölüm 12 13 ve 18 Hem egzersizler

Detaylı

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

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2013-2014 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 18.03.2014 Sınav Süresi: 50 dakika

Detaylı

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

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan Karmaşıklık Giriş 1 Algoritma Analizi Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek için Farklı algoritmalarla karşılaştırmak için Daha iyisi mümkün mü? Olabileceklerin en iyisi mi?

Detaylı

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

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri Bilgilerin Uzun Vadeli Saklanması Bilgisayar İşletim Sistemleri BLG 312 Dosya Sistemi saklanacak veriler çok fazla olabilir veriler proses sonlandıktan sonra da kaybolmamalı bilgiye prosesler ortak olarak

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

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

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR Algoritmaların Karşılaştırılması Doç. Dr. Aybars UĞUR Giriş Bir programın performansı genel olarak programın işletimi için gerekli olan bilgisayar zamanı ve belleğidir. Bir programın zaman karmaşıklığı

Detaylı

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

Çok Yollu Ağaçlar (Multi-Way Trees) Çok Yollu Ağaçlar (Multi-Way Trees) B-Trees B*-Trees B+-Trees Yrd.Doç.Dr. M. Ali Akcayol Çok Yollu Ağaçlar (Multi-Way Trees) Disk üzerindeki bilgilerin elde edilmesinde kullanılır. 3600 rpm ile dönen bir

Detaylı

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları Algoritma Analizi ve Büyük O Notasyonu Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları Algoritmaların Özellikleri Algoritmalar Input Girdi, bir kümedir, Output ÇıkF, bir kümedir (çözümdür) Definiteness

Detaylı

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036. atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036. atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036 atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİŞKEK 2012 Ahmet Atakan

Detaylı

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

Detaylı

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

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

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

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

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 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 Sembol-tablosu problemi 2 Doğrudan erişim tablosu 3 4 Çözüm

Detaylı