Here's some pseudocode for an insert.. Binary trees are very difficult without recursion, so if you're trying to do it with a while or for loop, then you're in for an interesting time.
Code:
Begin Method: Insert(Tree, NewNode)
if ( NewNode.data < Tree.data ) Then
If ( Tree.left is NULL ) Then
Tree.left = NewNode
Else
Insert( Tree.left, NewNode)
End If
Else if ( NewNode.data > Tree.data ) Then
If ( Tree.right is NULL ) Then
Tree.right = NewNode
Else
Insert( Tree.right, NewNode)
End If
End If
End Method
Begin Method: Grow(Data)
NewNode = New Node(Data)
If ( Root is NULL ) Then
Root = NewNode
Else
Insert( Root, NewNode )
End If
End Method