[tt]
public void copy (bst source, bst dest)
{
dest.root().setVal( source.root().value() );
if(source.left() != null)
{
dest.addLeft( source.left().value() );
copy( source.left(), dest.left() );
}
if(source.right() != null)
{
dest.addRight( source.right().value() );
copy( source.right(), dest.right() );
}
}
[/tt]
this has some redundant copying in it to compensate for the root node of the tree, but it should illustrate how this is to be done. you'll probly have to add extra methods 'addLeft(Object)' and 'addRight(Object)' for this to work.
good luck. "If you think you're too small to make a difference, try spending a night in a closed tent with a mosquito."