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


« Ağaçlar (tree)   |   İkili Arama Ağacı (Binary Search Tree) »



Yorumlar

Giriş yaparak yorum yazabilirsiniz.

Bu Yazı Hakkında

bilgisayar.kavramlari.com ü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 214 defa okunmuştur.

Benzer yazıları Automata (otomatlar), 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.


Eklenen Son Yazılar
Yapılan Son Yorumlar
Bağlantılar
Kapat
E-posta ile paylaş