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.

Eg: Inserting 1,0,1,1,0 would give:


......................1
...................../..\
....................0...null
.................../..\
..............null....1
...................../..\
................null.....1
......................../..\
......................0.....null

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