#include <stdio.h>
#include <stdlib.h>
typedef struct balanceWood {
struct balanceWood *left;
struct balanceWood *right;
int value;
} BalanceWood;
//BalanceWood *Root = NULL;
BalanceWood *AddBranch(BalanceWood *Root, int field) {
if(Root == NULL) {
BalanceWood *Root = malloc(sizeof(BalanceWood));
Root->value = field;
Root->left = Root->right = NULL;
return Root;
} else
if(field < Root->value)
Root->left = AddBranch(Root->left, field);
else
Root->right = AddBranch(Root->right, field);
return Root;
}
void ArrWood(BalanceWood *Root, int a[]) {
int count = 0;
if(Root == NULL) return;
ArrWood(Root->left, a);
a[count++] = Root->value;
ArrWood(Root->right, a);
free(Root);
}
void SortWood(int Elem, int a[]) {
BalanceWood *Root;
int i;
Root = NULL;
for(int i = 0; i < Elem; i++)
Root = AddBranch(Root, a[i]);
ArrWood(Root, a);
}
void PrintWood(BalanceWood *Root) {
if(Root != NULL) {
PrintWood(Root->left);
printf("%d-->", Root->value);
PrintWood(Root->right);
}
}
int main() {
int a[] = {3,4,7,56,89,5,565, 90};
BalanceWood *Root = NULL;
int c = sizeof(a)/sizeof(a[0]);
SortWood(c, a);
for (int i = 0; i< c /*sizeof(a)/sizeof(a[0])*/; i++) //{
//BalanceWood * Elem = CreateRoot(a[i]);
//AddBranch(Root, a[i]);
//}
//PrintWood(Root);
printf("%d-->", a[i]);
printf("\n");
return 0;
}
