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;i<b;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;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;
}