C Programlama Ağaç Yapısı






#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
 typedef struct agac{
  int deger;
  struct agac *sag,*sol;
 }lst;
 int yaprak=0;
 void yazdir(lst *kok)
 {
  if(kok!=NULL)
  {
   if(kok->sag==NULL && kok->sol==NULL)
  yaprak++;
 
   yazdir(kok->sol);
   printf("siralanmıs sekilde  %d\n",kok->deger);
   yazdir(kok->sag);
   printf("yaprak sayisi %d",yaprak);
   
  }
   
 }
 main()
 {
  int a,i;
    lst *kok,*ekle,*yer;
    printf("kac deger girmek istiyorsunuz.");
    scanf("%d",&a);
    yer=kok=new lst;
    kok->sol=NULL;
    kok->sag=NULL;
    printf("1. sayi degeri giriniz.");
    scanf("%d",&kok->deger);
    for(i=1;i<a;i++)
    {
     ekle=new lst;
     ekle->sol=NULL;
     ekle->sag=NULL;
     printf("%d. sayiyi giriniz.",i+1);
     scanf("%d",&ekle->deger);
      for(yer=kok;;)
      {
       if(ekle->deger>yer->deger)
       {
        if(yer->sag==NULL)
        {
         yer->sag=ekle;
         break;
        }
        else{
         yer=yer->sag;
         continue;
        }
       }
       else{
        if(yer->sol==NULL)
        {
         yer->sol=ekle;
         break;
        }
        else{
         yer=yer->sol;
         continue;
        }
       }
       
      }
     
     
    }
    yazdir(kok);
    system("pause");
    return 0;
 }

Yorum Gönder

0 Yorumlar