İkili arama ağacı, her düğümün solundaki koldan ulaşılabilecek bütün verilerin düğümün değerinden küçük, sağ kolundan ulaşılabilecek verilerin değerinin o düğümün değerinden büyük olmasını şart koşar.
Örneğin yukarıda bir ikili arama ağacı tasvir edilmiştir. Bu ağaçta dikkat edilecek olursa kökün solunda bulunan bütün sayılar kökten küçük ve sağında bulunan bütün sayılar kökten büyüktür.
İkili arama ağacına bu kurala uygun olarak ekleme çıkarma veya silme işlemleri yapılabilir. Ancak yapılan her işlemden sonra ikili arama ağacının yapısı bozulmamış olmalıdır.
İkili arama ağacında arama işlemi:
Yukarıda da anlatıldığı üzere ağacın üzerinde duran verilerin özel bir şekilde sıralı bulunması gerekir. Buna göre herhangi bir değeri arayan kişi ağacın kök değerine bakarak aşağıdaki 3 eylemden birisini yapar:
- Aranan sayı kökteki değere eşittir -> Aranan değer bulunmuştur
- Aranan sayı kökteki değerden küçüktür -> Kökün sol kolu takip edilir
- Aranan sayı kökteki deüerden büyüktür -> Kökün sağ kolu takip edilir
dugum * ara(dugum *kok, int deger){
if(deger == kok->veri){
return kok;
}
else if(deger > kok->veri ){
if(kok->sag != NULL) return ara(kok->sag, deger); else return NULL;
}
else{
if(kok->sag != NULL) return ara(kok->sol,deger); else return NULL
}
}
No comments:
Post a Comment