#include<stdio.h>
#include<stdlib.h>
struct tree{int data;
struct tree*right,*left;
};
void insert(struct tree**,int);
void inorder(struct tree*);
int main()
{ struct tree *head=NULL;
insert(&head,5);
insert(&head,9);
insert(&head,8);
insert(&head,6);
insert(&head,2);
insert(&head,15);
inorder(head);
return 0;
}
void insert(struct tree **head,int i)
{struct tree*temp=*head;
if(temp==NULL)
{temp=malloc(sizeof(struct tree));
temp->right=NULL;
temp->left=NULL;
*head=temp;
}
else
{ if(temp->data>i)
insert(&(temp->left),i);
else
insert(&(temp->right),i);
}
}
void inorder(struct tree*head)
{if(head)
{inorder(head->left);
printf("%d",head->data);
inorder(head->right);
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnN0cnVjdCB0cmVle2ludCBkYXRhOwogICAgICAgICAgICBzdHJ1Y3QgdHJlZSpyaWdodCwqbGVmdDsKICAgICAgICAgICAgfTsKdm9pZCBpbnNlcnQoc3RydWN0IHRyZWUqKixpbnQpOwp2b2lkIGlub3JkZXIoc3RydWN0IHRyZWUqKTsKaW50IG1haW4oKQp7IHN0cnVjdCB0cmVlICpoZWFkPU5VTEw7CiAgIGluc2VydCgmaGVhZCw1KTsKICAgaW5zZXJ0KCZoZWFkLDkpOwogICBpbnNlcnQoJmhlYWQsOCk7CiAgIGluc2VydCgmaGVhZCw2KTsKICAgaW5zZXJ0KCZoZWFkLDIpOwogICBpbnNlcnQoJmhlYWQsMTUpOwogICBpbm9yZGVyKGhlYWQpOwpyZXR1cm4gMDsKfQoKdm9pZCBpbnNlcnQoc3RydWN0IHRyZWUgKipoZWFkLGludCBpKQp7c3RydWN0IHRyZWUqdGVtcD0qaGVhZDsKICBpZih0ZW1wPT1OVUxMKQogICB7dGVtcD1tYWxsb2Moc2l6ZW9mKHN0cnVjdCB0cmVlKSk7CiAgICB0ZW1wLT5yaWdodD1OVUxMOwogICAgdGVtcC0+bGVmdD1OVUxMOwogICAgKmhlYWQ9dGVtcDsKICAgIH0KICAgZWxzZQogIHsgaWYodGVtcC0+ZGF0YT5pKQogICAgICAgaW5zZXJ0KCYodGVtcC0+bGVmdCksaSk7CiAgICBlbHNlCiAgICAgaW5zZXJ0KCYodGVtcC0+cmlnaHQpLGkpOwogICB9Cn0KCnZvaWQgaW5vcmRlcihzdHJ1Y3QgdHJlZSpoZWFkKQp7aWYoaGVhZCkKICB7aW5vcmRlcihoZWFkLT5sZWZ0KTsKICAgIHByaW50ZigiJWQiLGhlYWQtPmRhdGEpOwogICAgaW5vcmRlcihoZWFkLT5yaWdodCk7CiAgfQp9