I am looking for implementation of ordinary binary tree, not binary search tree. here is example how it should look 1 2 5 4 3 3
of course, in c
and possibly with recursion if possible
why of course in c, is c the only language in teh world? http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/tree.html
this is binary search tree, not binary tree
maybe but it says building binary tree
yes, but if it is putting smaller numbers on left, and grater on right, this is binary search tree
When you say implementation, do you mean the creation of the tree? Or do you want to be able to search it as well? Given that you have an unordered tree, your solution will involve some form of traversal O(n). As for creating the tree, I assume you want to keep it balanced. One possible solution is modifying the BST implementation. If you assign each Node a weight (which would represent the number of nodes beneath it), traverse the tree with smaller weights.
You would have to create a node with three entries, value,pointer to left, and pointer to right. Then with that implementation you could create the population, and search algorithms.
i made it. implementation is based on bfs search algorithm typedef struct node { int data; struct node *right; struct node *left; }mynode; void add(mynode **root,int data){ mynode *new=malloc(sizeof(mynode)); new->data=data; new->left=NULL; new->right=NULL; mynode *queue[200]={NULL}; int head=-1; int tail=-1; mynode *current; if(*root==NULL){ *root=new; return; } else{ queue[++tail]=*root; while(head!=tail){ current=queue[++head]; if(current->left!=NULL) queue[++tail]= current->left; if(current->right!=NULL) queue[++tail]= current->right; if(current->left==NULL) { current->left=new; return;} if(current->right==NULL) {current->right=new;return;} } } }
Join our real-time social learning platform and learn together with your friends!