Binary Search Trees: Definition
A Binary Search Tree (or BST, for short) is a binary tree with the following added requirements:
Each node stores a data element e and a key k. The keys come from a totally ordered set (e.g., integers, or strings with lexicographic ordering).
For each node, any and all keys in its left subtree are less than its own key, and any and all keys in its right subtree are greater than its own.
(We typically assume that all the keys in a BST are distinct. If not, we should call the structure a BST with duplicates.)