Hoşgeldin Misafir

B code in C

MiRaT

13 Kas 2017
2,077 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Kod:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 7

struct n {
	char info;
	struct n * next;
	struct n * prev;
	struct n * left;
    struct n * right;
};

typedef struct n node;

int array[SIZE]={1,2,3,4,5,6,7};


int main(int argc, char *argv[]) {


	node * root;
    node * iter=root;
   int m=SIZE/2;
int i,m1=0,m2=0,ct=0;



iter=(node*)malloc(sizeof(node));
iter->info=array[m];
iter->next=(node*)malloc(sizeof(node));

for(i=m+1;i<SIZE;i++){
       m1=m1+array[i];
       ct++;
}
m1=m1/ct;
iter->right=(node*)malloc(sizeof(node));
iter->right->info=array[m1-1];
iter->right->next=(node*)malloc(sizeof(node));
//////////////////
iter->right->left=(node*)malloc(sizeof(node));
iter->right->left->info=array[m1-2];
iter->right->left->next=(node*)malloc(sizeof(node));
///////////////
iter->right->right=(node*)malloc(sizeof(node));
iter->right->right->info=array[m1];
iter->right->right->next=(node*)malloc(sizeof(node));
ct=0;
for(i=m-1;i>=0;i--){
       m2=m2+array[i];
       ct++;
}
m2=m2/ct;
iter->left=(node*)malloc(sizeof(node));
iter->left->info=array[m2-1];
iter->left->next=(node*)malloc(sizeof(node));
/////////////
iter->left->left=(node*)malloc(sizeof(node));
iter->left->left->info=array[m2-2];
iter->left->left->next=(node*)malloc(sizeof(node));
//////////////////
iter->left->right=(node*)malloc(sizeof(node));
iter->left->right->info=array[m2];
iter->left->right->next=(node*)malloc(sizeof(node));

int a;
int c;
printf("Enter a number");
scanf("%d",&a);

for(i=0;i<SIZE;i++){
	if(a>i) c=array[i];
}
	if(c>m&&c<m1-1){
	iter->next->info=a;
	iter=iter->next;
	}
	else if(m<c&&c>m1-1){
	iter->right->next->info=a;
	iter=iter->right->next;
	}
	else if(m<c&&c>m2-1){
	iter->left->next->info=a;
	iter=iter->left->next;
	}
	else if(c>m1-1){
	iter->right->right->next->info=a;
	iter=iter->right->right->next;
	}
	else if(c<m1-1){
	iter->right->left->next->info=a;
	iter=iter->right->left->next;
	}
	else if(c>m2-1){
	iter->left->right->next->info=a;
	iter=iter->left->right->next;
	}
	else if(c<m1-1){
	iter->left->left->next->info=a;
	iter=iter->left->left->next;
	}
	
printf("%d",iter->info);
system("PAUSE");
	return 0;
}