#include <stdio.h>
#include <stdlib.h>
struct emra
{
int veri;
struct emra *sag;
struct emra *sol;
};
typedef struct emra *tree;
struct emra2
{
int veri;
struct emra2 *cocuk;
struct emra2 *kardes;
};
typedef struct emra2 *liste;
void listeekle(liste,tree,int);
void ekle(tree,int);
tree yerac()
{
tree yeni;
yeni=(tree)malloc(sizeof(struct emra));
yeni->veri=0;
yeni->sag=NULL;
yeni->sol=NULL;
return yeni;
}
liste yerac2()
{
liste yeni;
yeni=(liste)malloc(sizeof(struct emra2));
yeni->veri=0;
yeni->cocuk=NULL;
yeni->kardes=NULL;
return yeni;
}
void ekle(tree a,int b)
{
tree yeni;
if(a->veri==0)
{
a->veri=b;
return;
}
if(b<a->veri)
{
if(a->sol==NULL)
{
yeni=yerac();
a->sol=yeni;
ekle(yeni,b);
return;
}
ekle(a->sol,b);
return;
}
if(b>a->veri)
{
if(a->sag==NULL)
{
yeni=yerac();
a->sag=yeni;
ekle(yeni,b);
return;
}
ekle(a->sag,b);
return;
}
}
void yerlestir(tree a,liste b)
{
if(a==NULL)
return;
if(a->sol==NULL&&a->sag==NULL)
b->veri=a->veri;
if(a->sol==NULL&&a->sag!=NULL)
{
b->veri=a->veri;
b->cocuk=yerac2();
yerlestir(a->sag,b->cocuk);
}
if(a->sol!=NULL&&a->sag!=NULL)
{
b->veri=a->veri;
b->cocuk=yerac2();
b->cocuk->kardes=yerac2();
yerlestir(a->sol,b->cocuk);
yerlestir(a->sag,b->cocuk->kardes);
}
if(a->sol!=NULL&&a->sag==NULL)
{
b->veri=a->veri;
b->cocuk=yerac2();
yerlestir(a->sol,b->cocuk);
}
}
void yazdir(tree a)
{
if(a==NULL)
return;
yazdir(a->sol);
printf("%d
",a->veri);
yazdir(a->sag);
}
void yazdir2(liste b)
{
if(b==NULL)
return;
if(b->kardes==NULL)
printf("
%d
",b->veri);
else
{
printf("
%d %d
",b->veri,b->kardes->veri);
yazdir2(b->kardes->cocuk);
}
yazdir2(b->cocuk);
}
int main()
{
int i,j;
tree a;
liste b;
a=yerac();
b=yerac2();
while(i!=0)
{
printf("cikmak icin 0 yaz
");
scanf("%d",&i);
printf("veri gir : ");
scanf("%d",&j);
ekle(a,j);
}
yerlestir(a,b);
yazdir(a);
yazdir2(b);
return 0;
}
arkadaşın gelmesini kadar beklemeyin
siteye yüklediği kod bu
insa ettigim binanin cimentosu kelâm
|