#include typedef struct Node { int data; struct Node* left; struct Node* right; } Node; Node* newNode(int data) { Node* node = (Node*)malloc(sizeof(Node)); node->data = data; node->left = NULL; node->right = NULL; return(node); } Node* insert(Node* node, int data) { if (node == NULL) { return(newNode(data)); } else { if (data <= node->data) node->left = insert(node->left, data); else node->right = insert(node->right, data); return(node); } } int search(Node* root, int x) { if(root == NULL || root->data == x) return root; else if(root->data < x) return search(root->right, x); else return search(root->left, x); }