add BST(support 4 differents traversals)