#include<stdio.h> #include<malloc.h>//dynamic memory allocation #include <limits.h>//to use INT_MAX and INT_MIN //node structure typedef struct Node{ int data; struct Node *left; struct Node *right; }node; //creating a single node node* createNode(int data){ node* newNode=(node*)malloc(sizeof(node)); newNode->data=data; newNode->left=newNode->right=NULL; return newNode; } //inserting a node into BST node* insert(node* root,int data){ if(root==NULL) return createNode(data); if(root->data < data) root->right= insert(root->right,data); else root->left= insert(root->left,data); return root; } //Search node* search(node *root,int key){ if(root==NULL || root->data==key) return root; if(root->data<key) return search(root->right,key); return search(root->left,key); } //create a Binary Search Tree node* createBST(){ node* root=insert(NULL,15); root=insert(root,10); ...