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 10
struct n {
	char info;
	struct n * next;
	struct n * down;
	struct n * left;
    struct n * right;

};

typedef struct n node;

int array[SIZE]={50,55,60,64,65,70,75,80,90,100};


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

	node * root=(node*)malloc(sizeof(node));
    node * iter=root;
int i,r,a,b,n=3,ct=0;

r=SIZE+1;
a=r/n-1;
n--;
b=(r-n+1)/n;
b=a+b-1;

iter=(node*)malloc(sizeof(node));
iter->info=array[a];
printf("LEVEL 1 %d",iter->info);
iter->next=(node*)malloc(sizeof(node));
iter->next->info=array[b];
printf("LEVEL 1 %d",iter->next->info);
iter->next->next=(node*)malloc(sizeof(node));
iter->next->next->next=(node*)malloc(sizeof(node));

iter=root->left;
printf("\n");
for(i=0;i<4;i++){
	iter=(node*)malloc(sizeof(node));
	if(array[i]<=array[a]) {
		iter->info=array[i];
		printf("LEVEL 2 %d",iter->info);
	}
	iter=iter->next;
}
iter=root->next->down;
printf("\n");

for(i=a+1;i<b+1;i++){
	iter=(node*)malloc(sizeof(node));
	if(array[i]<=array[b]) {
	    iter->info=array[i];
	   	printf("LEVEL 2 %d",iter->info);
	}
	iter=iter->next;
}
printf("\n");

iter=root->next->next->right;

for(i=b+1;i<10;i++){
	iter=(node*)malloc(sizeof(node));
	if(array[i]>=array[b]) {
    	 iter->info=array[i];
	     printf("LEVEL 2 %d",iter->info);
	}
	iter=iter->next;
}
printf("\n");
system("PAUSE");

	return 0;
}