Şimdi Ara

C binary search tree

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
3
Cevap
0
Favori
378
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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;
    }







  • 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ı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.