Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
553
Tıklama
0
Öne Çıkarma
C binary search tree
O
8 yıl (39 mesaj)
Onbaşı
Konu Sahibi

C://Veriler.txt içindeki verileri ikili ağaca ekleyen C kodunu yazınız.Soru şu şekilde.Fakat yazdığım kod çalışmıyor.

Benim yazdığım kod şu şekilde;

#include <stdio.h>
#include <stdlib.h>
typedef struct n{

int data;
struct node* sol;
struct node* sag;

}node;

node* tree=NULL;

node* ekle(node* agac,node* yeni){
if(agac==NULL){
node* root=(node*)malloc(sizeof(node));
root->sag=NULL;
root->sol=NULL;
root->data=yeni;
}
if(agac->data<yeni){
agac->sag=ekle(agac->sag,yeni);
return agac;
}
agac->sol=ekle(agac->sol,yeni);
return agac;
}
void dolas(node* agac){
if(agac==NULL){
return;
}
dolas(agac->sol);
printf("%d ",agac->data);
dolas(agac->sag);
}

int main()
{

node* yeni=NULL;
FILE *dosya;
dosya=fopen("veriler.txt","r");
while(feof(dosya)){

fscanf(dosya,"%d",yeni->data);
ekle(tree,yeni);

}
dolas(tree);
return 0;
}



K
8 yıl (1110 mesaj)
Yüzbaşı

Ekle fonksiyonunda if blokları yanlış yazılmış

1-eğer ağaç boş ise -datayı yaz

2-eğer ağacın datası gelenden küçükse-ağacın sağına git

3-eğer ağaç darası gelenden büyükse-ağacın soluna git



Bunları else if yapısı ile yapman daha sağlıklı.

Son olarak recursive yapısında hata var



< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.