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