the code of BinarySearchTree