A binary search tree is a tree in which the time to search an element is O(log2n) (which is faster than searching an element in a binary tree, where O(n)). But to support O(log2n) searching, we need to add a special property to the binary tree: we put all the nodes with values smaller than the value in the root into its left subtree and all of the nodes with values larger than the value in the root into its right subtree.