node *putNode(node *root,int key,int value) { if(root==NULL) { root=(node *)malloc(sizeof(node)); root->key=key; root->value=value; root->left=NULL; root->right=NULL; return root; } else if(root->key > key) root->left=putNode(root->left,key,value); else if(root->key < key) root->right=putNode(root->right,key,value); else root->value=value; return root; }
static Node* putNode(Node* x, int key, int value) { if(x == NULL) { x = (Node *) malloc(sizeof(Node)); x->key = key; x->value = value; x->count = 1; return x; } if(key < x->key) x->left = putNode(x->left, key, value); else if(key > x->key) x->right= putNode(x->right, key, value); else x->value = value; x->count = 1 + sizeNode(x->left) + sizeNode(x->right); return x; }
void put(int key,int value) { root=putNode(root,key,value); }