Full Article

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct TREE{
   int bilgi;
   struct TREE *right,*left;
}Agac;
Agac *root=NULL;
void ekle(Agac *agackok,Agac*yeni)
{
   if(agackok==NULL)//eğer ağaç boşsa 
   {
      root=yeni;//yeni elemanı kök olarak ata
   }
   else//eğer ağaç boş değilse
   {
      if(yeni->bilgi<agackok->bilgi)//eğer yeni eklenen sayı kök sayıdan küçükse sola ekle
      {
         if(agackok->left==NULL)//eğer ağacın solu boşsa sola ilk olanı ekle 
            agackok->left=yeni;
         else
            ekle(agackok->left,yeni);//eğer solda eleman varsa solun bir soluna daha geç oraya ekle
      }
      else//eğer yeni eklenen sayı kökten küçük değilse sağa ekle
      {
         if(agackok->right==NULL)//eğer ağacın sağı boşsa elemanı ilk olarak ekle.
            agackok->right=yeni;
         else
            ekle(agackok->right,yeni);//ağacın solunda eleman varsa sağın bir sağına ekle
      }
   }
}
void listele(Agac *agackok)
{
   if(agackok!=NULL)
   {
      listele(agackok->left);//önce solu listeledik çünkü daima soldakiler sağdakilerden küçüktür.
      printf("%d\n",agackok->bilgi);
      listele(agackok->right);
   }
}
Agac *ara(Agac *agackok,int aranan)
{
   while(agackok!=NULL && agackok->bilgi!=aranan)
   {
      if(aranan<(agackok->bilgi))
         agackok=agackok->left;
      else
         agackok=agackok->right;
   }
   return agackok;
}
int main()
{
   Agac *yeni,*adres;
   int sayi;
   char secim;
   while(1)
   {
      puts("Ekleme--E\nListeleme--L\nArama--A\nCikis--C\nSeciminiz\n");
      secim=getch();
      switch(secim)
      {
      case 'E': yeni=(Agac*)malloc(sizeof(Agac));
                if(yeni==NULL)
                {
                   puts("Bellek Dolu!!");
                }
                puts("Sayiyi Giriniz:");
                scanf("%d",&(yeni->bilgi));
                yeni->right=NULL;
                yeni->left=NULL;
                ekle(root,yeni);
                break;
      case 'L': if(root!=NULL)
                   listele(root);
                else
                   puts("Liste Bos!");
                break;
      case 'A': puts("Aranan Sayi");
                scanf("%d",&sayi);
                adres=ara(root,sayi);
                if(adres==NULL)
                {
                   puts("Aranan Bulunamadi");
                }
                else
                {
                   printf("Sayi:%d\n",adres->bilgi);
                }
                break;
      case 'C': exit(0);
                break;
      default:  puts("Yanlis secim!");
      }
   }
}

 Bu örnek Full Article kullanıcımız tarafından gönderilmiştir. Siz de kodunuzu göndermek isterseniz eblaster mobile smartphone monitoring softwarea gönderebilirsiniz.

http://cheapessaysbe.com/