implemented bst: traverse