Here is an iterative version of the publie put method (no private method used):
public void put(Key k, Value v)
{
if (root == null) {
root = new Node(k,v);
return;
}
Node p = root;
while(true)
{
if (k.compareTo(p.key) < 0 ) {
if ( p.left == null ) {
p.left = new Node(k,v);
return;
}
else
p = p.left;
}
else if ( k.compareTo(p.key) > 0 ) {
if ( p.right == null ) {
p.right = new Node(k,v);
return;
}
else
p = p.right;
}
else { // k already in the tree, update its value
p.val = v;
return;
}
}
}