Ekleme Algoritması
Eğer kök boşsa, hemen köke ekle.
Eğer kök boş değilse,
* eklenecek değer kökten küçükse sola, büyükse sağa yerleştirilmeli.
eklenecek değer kökten küçükse
sol boşsa hemen sola yerleştir.
değilse ekleme(kok->sol, ekleme)
eklenecek deger kökten büyükse
sağ boşsa hemen sağa yerleştir.
değilse ekleme(kok->sağ, ekleme)
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct tree{int x;
tree *sol;
tree *sag;
};
typedef tree agac;
void a_ekleme(agac *kok, agac *eklenen)
{
// ağac yoksa
if(kok==NULL) kok=eklenen;
else {
if (eklenen->x <= kok->x){
if (kok->sol==NULL) kok->sol =eklenen;
else ekle(kok->sol, eklenen);
}
else{
if(kok->sag==NULL) kok->sag =eklenen;
else ekle(kok->sag,eklenen);
}
}
}
Listeleme Algoritması
kok NULL değerine ulaşana kadar sol’a git yaz.
void a_listeleme(agac *kok)
{
if (kok!=NULL){
a_listeleme(kok->sol);
printf("\n%d",kok->x);
a_listeleme(kok->sag);
}
}
Arama Algoritması
agac *ara(agac *kok, int aranan)
{
while(kok!=NULL && kok->x != aranan)
{
if(aranan<=kok->x)
// aranan küçükse sola git
kok = kok->sol;
else
kok = kok->sag;
}
return kok; // eğer bulunursa bulunan nodenin adresi yoksa null değeri.
}
Bir yanıt bırakın Cevabı iptal et