diff --git a/src/tree.cpp b/src/tree.cpp new file mode 100644 index 0000000..c315a63 --- /dev/null +++ b/src/tree.cpp @@ -0,0 +1,61 @@ +struct node +{ + int data; + struct node *left; + struct node *right; +}; + +/* newNode() allocates a new node with the given data and NULL left and +right pointers. */ +struct node* newNode(int data) +{ +// Allocate memory for new node +struct node* node = (struct node*)malloc(sizeof(struct node)); + +// Assign data to this node +node->data = data; + +// Initialize left and right children as NULL +node->left = NULL; +node->right = NULL; +return(node); +} + + +int main() +{ +/*create root*/ +struct node *root = newNode(1); +/* following is the tree after above statement + + 1 + / \ + NULL NULL +*/ + + +root->left = newNode(2); +root->right = newNode(3); +/* 2 and 3 become left and right children of 1 + 1 + / \ + 2 3 + / \ / \ + NULL NULL NULL NULL +*/ + + +root->left->left = newNode(4); +/* 4 becomes left child of 2 + 1 + / \ + 2 3 + / \ / \ +4 NULL NULL NULL +/ \ +NULL NULL +*/ + +getchar(); +return 0; +}