- #include<stdio.h> 
- #include<stdlib.h> 
-   
- struct tree 
- { 
-     struct tree *left; 
-     struct tree *right; 
-     int value; 
- }; 
-   
- typedef struct tree node; 
-   
- void insertNode(node **root, int val) 
- { 
-     node *temp = NULL; 
-     if(!(*root)) 
-     { 
-         temp  = (- node *) malloc(sizeof(- node ));
-         temp->value = val; 
-         temp->left = NULL; 
-         temp->right = NULL; 
-         *root = temp; 
-     } 
-   
-     if(val < (*root)->value) 
-         insertNode(&(*root)->left, val); 
-   
-     if(val >= (*root)->value) 
-         insertNode(&(*root)->right, val); 
- } 
-   
- void preOrder(node *root) 
- { 
-     if(root) 
-         preOrder(root->left); 
-         preOrder(root->right); 
-     } 
- } 
-   
- void inOrder(node *root) 
- { 
-     if(root) 
-     { 
-         inOrder(root->left); 
-         inOrder(root->right); 
-     } 
- } 
-   
- void postOrder(node *root) 
- { 
-     if(root) 
-     { 
-         postOrder(root->left); 
-         postOrder(root->right); 
-     } 
- } 
-   
- void delTree(node *root) 
- { 
-     if(root) 
-     { 
-         delTree(root->left); 
-         delTree(root->right); 
-     } 
- } 
-   
- int main() 
- { 
-     int val; 
-     char ch; ch = 'y'; 
-     node *root; 
-   
-     while(ch == 'y') 
-     { 
-         scanf("Enter the node value: %d", &- val );
 
-         insertNode(&root, val); 
-         scanf("Want to enter more: %c", &- ch );
 
-     } 
-   
-     printf("\nInOrder traversal:\n"); 
-     inOrder(root); 
-     printf("\nPreOrder traversal:\n"); 
-     preOrder(root); 
-     printf("\nPostOrder traversal:\n"); 
-     postOrder(root); 
-   
-     delTree(root); 
-   
-     return 0; 
- } 
-   
				I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CgpzdHJ1Y3QgdHJlZQp7CiAgICBzdHJ1Y3QgdHJlZSAqbGVmdDsKICAgIHN0cnVjdCB0cmVlICpyaWdodDsKICAgIGludCB2YWx1ZTsKfTsKCnR5cGVkZWYgc3RydWN0IHRyZWUgbm9kZTsKCnZvaWQgaW5zZXJ0Tm9kZShub2RlICoqcm9vdCwgaW50IHZhbCkKewogICAgbm9kZSAqdGVtcCA9IE5VTEw7CiAgICBpZighKCpyb290KSkKICAgIHsKICAgICAgICB0ZW1wID0gKG5vZGUqKSBtYWxsb2Moc2l6ZW9mKG5vZGUpKTsKICAgICAgICB0ZW1wLT52YWx1ZSA9IHZhbDsKICAgICAgICB0ZW1wLT5sZWZ0ID0gTlVMTDsKICAgICAgICB0ZW1wLT5yaWdodCA9IE5VTEw7CiAgICAgICAgKnJvb3QgPSB0ZW1wOwogICAgfQoKICAgIGlmKHZhbCA8ICgqcm9vdCktPnZhbHVlKQogICAgICAgIGluc2VydE5vZGUoJigqcm9vdCktPmxlZnQsIHZhbCk7CgogICAgaWYodmFsID49ICgqcm9vdCktPnZhbHVlKQogICAgICAgIGluc2VydE5vZGUoJigqcm9vdCktPnJpZ2h0LCB2YWwpOwp9Cgp2b2lkIHByZU9yZGVyKG5vZGUgKnJvb3QpCnsKICAgIGlmKHJvb3QpCiAgICB7ICAgcHJpbnRmKCIgJWQiLHJvb3QtPnZhbHVlKTsKICAgICAgICBwcmVPcmRlcihyb290LT5sZWZ0KTsKICAgICAgICBwcmVPcmRlcihyb290LT5yaWdodCk7CiAgICB9Cn0KCnZvaWQgaW5PcmRlcihub2RlICpyb290KQp7CiAgICBpZihyb290KQogICAgewogICAgICAgIGluT3JkZXIocm9vdC0+bGVmdCk7CiAgICAgICAgcHJpbnRmKCIgJWQiLHJvb3QtPnZhbHVlKTsKICAgICAgICBpbk9yZGVyKHJvb3QtPnJpZ2h0KTsKICAgIH0KfQoKdm9pZCBwb3N0T3JkZXIobm9kZSAqcm9vdCkKewogICAgaWYocm9vdCkKICAgIHsKICAgICAgICBwb3N0T3JkZXIocm9vdC0+bGVmdCk7CiAgICAgICAgcG9zdE9yZGVyKHJvb3QtPnJpZ2h0KTsKICAgICAgICBwcmludGYoIiAlZCIscm9vdC0+dmFsdWUpOwogICAgfQp9Cgp2b2lkIGRlbFRyZWUobm9kZSAqcm9vdCkKewogICAgaWYocm9vdCkKICAgIHsKICAgICAgICBkZWxUcmVlKHJvb3QtPmxlZnQpOwogICAgICAgIGRlbFRyZWUocm9vdC0+cmlnaHQpOwogICAgICAgIGZyZWUocm9vdCk7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW50IHZhbDsKICAgIGNoYXIgY2g7IGNoID0gJ3knOwogICAgbm9kZSAqcm9vdDsKCiAgICB3aGlsZShjaCA9PSAneScpCiAgICB7CiAgICAgICAgc2NhbmYoIkVudGVyIHRoZSBub2RlIHZhbHVlOiAlZCIsICZ2YWwpOwogICAgICAgIGluc2VydE5vZGUoJnJvb3QsIHZhbCk7CiAgICAgICAgc2NhbmYoIldhbnQgdG8gZW50ZXIgbW9yZTogJWMiLCAmY2gpOwogICAgfQoKICAgIHByaW50ZigiXG5Jbk9yZGVyIHRyYXZlcnNhbDpcbiIpOwogICAgaW5PcmRlcihyb290KTsKICAgIHByaW50ZigiXG5QcmVPcmRlciB0cmF2ZXJzYWw6XG4iKTsKICAgIHByZU9yZGVyKHJvb3QpOwogICAgcHJpbnRmKCJcblBvc3RPcmRlciB0cmF2ZXJzYWw6XG4iKTsKICAgIHBvc3RPcmRlcihyb290KTsKCiAgICBkZWxUcmVlKHJvb3QpOwogICAgcHJpbnRmKCJUcmVlIERlbGV0ZWQuIik7CgogICAgcmV0dXJuIDA7Cn0K