• Bağış
  • İkili Ağaç (Binary Tree)

    Yazan: Şadi Evren ŞEKER

    Ağaçların özel bir hali olan ikili ağaçlarda her düğümün çocuklarının sayısı azami 2 olabilir. Bir düğümün daha az çocuğu bulunması durumunda ( 0 veya 1) ağacın yapısı bozulmaz. Yapraklar hariç bütün düğümlerin ikişer çocuğu bulunması ve yaprakların aynı derinlikte bulunması durumunda bu ağaca dengeli ağaç (balanced tree) denilir. Aşağıda bir dengeli ikili ağaç örneği tasvir edilmiştir:

    ikiliagac.jpg

    Bu ağacı değişik sıralarda yeniden oluşturabiliriz. Örneğin aşağıdaki ağaç da yukarıdaki verilerin aynılarını taşıyan bir ikili ağaç örneğidir.

    ikilizincir.jpg

    Yukarıdaki bu ağacın ilk örnekten farkı dengesiz olması ve özel olarak her düğümün çocuk sayısının 1 olmasıdır. Tanım hatırlanacak olursa yukarıdaki bu ağaç da bir ikili ağaç olarak kabul edilebilir.

    C dilinde bir ikili ağacı ifade edecek struct aşağıdaki şekilde yazılabilir:

    typedef struct dugum{
    int veri;
    dugum *sol;
    dugum *sag;
    };

    Yukarıdaki kodda bir düğümün taşıması gereken bilgiler tanımlanmıştır. Buna göre düğümün sağındaki ve solundaki çocukları gösteren birer gösterici (pointer) ve düğümün içindeki veriyi tutan bir veri değişkeni bulunmaktadır.

    Benzer durum java dilinde aşağıdaki şekilde ifade edilebilir:

    class dugum{
    int veri;
    dugum sol;
    dugum sag;
    };

    Yukarıdaki kodda ise nesne göstericisi (object referrer) kullanılarak bir nevi gösterici (pointer) yapısı kullanılmıştır. Buna göre her düğümün sol ve sağında gene düğüm cinsinden birer nesne bulunabilecektir.

    Daha fazla bilgi için ikili ağaçların özel bir hali olan ikili arama ağaçlarına (binary search tree) bakabilirsiniz.

    Benzer Yazılar:

    Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'İkili Ağaç (Binary Tree)' isimli yazı 07 May 2008 tarihinde, saat: 05:11 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 3698 defa okunmuştur.

    Benzer yazıları Automata (otomatlar, özdevinirler), C/C++, JAVA, Nesne Yönelimli Programlama, Programlama Dilleri, Temel Bilimler, veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


    Category: Automata (otomatlar, özdevinirler), C/C++, JAVA, Nesne Yönelimli Programlama, Programlama Dilleri, Temel Bilimler, veri yapıları
    No response to “İkili Ağaç (Binary Tree)”
    1. [...] İkili ağaçlar (Binary Tree) [...]

    2. [...] üst düğümün (atasının) alt düğümlerden (çocuklarından) her zaman büyük olduğu bir ikili ağaç (binary tree) şeklinde [...]

    Leave a Reply