- #include <iostream> 
- using namespace std; 
-   
- class Node { 
- public: 
-     int data; 
-     Node *left; 
-     Node *right; 
- }; 
-   
- Node* GetNewNode(int data) { 
-     Node *newNode = new Node(); 
-     newNode->data = data; 
-     newNode->left = NULL; 
-     newNode->right = NULL; 
-     return newNode; 
- } 
-   
- void Insert(Node **root, int data)  
- { 
-     if (*root == NULL) { // empty tree 
-         *root = GetNewNode(data); 
-     } 
-     else if ((*root)->data < data) { 
-         Insert(&((*root)->left), data); 
-     } 
-     else { 
-         Insert(&((*root)->right), data); 
-     } 
- } 
-   
- int main(int argc, char *argv[]) 
- { 
-     Node *treeRoot = NULL; 
-   
-     Insert(&treeRoot, 15); 
-     Insert(&treeRoot, 23); 
-     Insert(&treeRoot, 10); 
-   
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTm9kZSB7CnB1YmxpYzoKICAgIGludCBkYXRhOwogICAgTm9kZSAqbGVmdDsKICAgIE5vZGUgKnJpZ2h0Owp9OwoKTm9kZSogR2V0TmV3Tm9kZShpbnQgZGF0YSkgewogICAgTm9kZSAqbmV3Tm9kZSA9IG5ldyBOb2RlKCk7CiAgICBuZXdOb2RlLT5kYXRhID0gZGF0YTsKICAgIG5ld05vZGUtPmxlZnQgPSBOVUxMOwogICAgbmV3Tm9kZS0+cmlnaHQgPSBOVUxMOwogICAgcmV0dXJuIG5ld05vZGU7Cn0KCnZvaWQgSW5zZXJ0KE5vZGUgKipyb290LCBpbnQgZGF0YSkgCnsKICAgIGlmICgqcm9vdCA9PSBOVUxMKSB7IC8vIGVtcHR5IHRyZWUKICAgICAgICAqcm9vdCA9IEdldE5ld05vZGUoZGF0YSk7CiAgICB9CiAgICBlbHNlIGlmICgoKnJvb3QpLT5kYXRhIDwgZGF0YSkgewogICAgICAgIEluc2VydCgmKCgqcm9vdCktPmxlZnQpLCBkYXRhKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIEluc2VydCgmKCgqcm9vdCktPnJpZ2h0KSwgZGF0YSk7CiAgICB9Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICAgIE5vZGUgKnRyZWVSb290ID0gTlVMTDsKCiAgICBJbnNlcnQoJnRyZWVSb290LCAxNSk7CiAgICBJbnNlcnQoJnRyZWVSb290LCAyMyk7CiAgICBJbnNlcnQoJnRyZWVSb290LCAxMCk7Cgp9