## hogar 3 years ago 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

1. hogar

of course, in c

2. hogar

and possibly with recursion if possible

3. Tomas.A

why of course in c, is c the only language in teh world? http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/tree.html

4. hogar

this is binary search tree, not binary tree

5. Tomas.A

maybe but it says building binary tree

6. hogar

yes, but if it is putting smaller numbers on left, and grater on right, this is binary search tree

7. ggmathur

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.

8. ecdown

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.

9. agdgdgdgwngo
10. hogar

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;} } } }