#include <stdio.h>
#include <stdlib.h>
struct TreeNode;
typedef struct TreeNode * Position;
typedef struct TreeNode * SearchTree;
struct TreeNode{
int element;
SearchTree left;
SearchTree right;
};
SearchTree MakeEmpty(SearchTree T) {
if(T != NULL) {
MakeEmpty(T->left);
MakeEmpty(T->right);
free(T);
}
return NULL;
}
SearchTree Insert(int element,SearchTree T) {
if(T == NULL) {
T = (SearchTree)malloc(sizeof(struct TreeNode));
if(T == NULL) {
printf("Out of Space");
} else {
T->element = element;
T->left = T->right = NULL;
}
} else {
if(element < T->element) {
T->left = Insert(element,T->left);
} else if(element > T->element) {
T->right = Insert(element,T->right);
}
}
return T;
}
void showAllTreeNode(SearchTree T) {
if(T->left != NULL) {
showAllTreeNode(T->left);
}
printf("element = %d\n",T->element);
if(T->right != NULL) {
showAllTreeNode(T->right);
}
}
int main() {
SearchTree head = NULL;
int a[10] = {0,3,8,9,2,1,4,7,6,5};
for( int i=0; i<10; i++) {
head = Insert(a[i],head);
}
showAllTreeNode(head);
}