well this may not actually be called a binary tree. but i need a tree that would insert a new element as a children of last element inserted.
I am only inserting 0's and 1's
0's to the left and 1's to the right.
That means it would create a new level every time i insert an element.
this is what i've thought so far. but it doesnt seem to work.
Please help?
void insert(node *&tree, int ele)
{
if(tree==NULL)
{
tree = new node(ele);
if (flag == 1)
{
cout<<"\nleft insert: made it the root.\n";
tree = tree->left;
}
else if (flag == 2 )
{
cout<<"\nright insert: made it the root.\n";
tree = tree->right;
}
flag = 0;
tree_level++;
return;
}
else if (ele == 0 ) // (ele <= tree -> data)<--for a "decimal" binary tree.
{ flag = 1;//tree = tree->left;
insert(tree->left, ele);
}
else //if ele == 1, the only other possible binary value.
{
flag = 2;//tree = tree->right;
insert(tree->right,ele);
}
return;
}
1 - We need to know what your "node" looks like. I'd be ready to place money there is a problem there. And if there isn't, it would really help to see it.
2 -
Code:
tree = tree->left;
This probably isn't doing what you think it is. That, or you have a strange way of thinking
It is quite text heavy, but it is intelligently written. The author holds your hand while writing an implementation of the binary search tree. Learn, inspire and adapt.
Bookmarks