`
void g(tree_t *t1, tree_t *t2)
{
if (t2 == NULL) return;
t3 = t1;
while (TRUE) {
t4 = t3;
if (t2->data > t3-data) {
if (t3->right == NULL) {
t3->right = new_tree(t2->data);
break;
} else {
t3 = t3->right;
}
} else {
if (t3->left == NULL) {
t3->left = new_tree(t2->data);
break;
} else {
t3 = t3->left;
}
}
}
g(t1, t2->left);
g(t1, t2->data);
}
`

When passed two non-empty binary search trees, this function will: