A binary search tree (BST) is a tree data structure where each node has a maximum of two children, and the values of left descendant nodes are less than the current node, which is less than the values of right descendant nodes. This structure allows for fast lookup, insertion, and removal of nodes in O(log n) time on average. However, in a worst case scenario where the tree is unbalanced, these operations can take O(n) time. Common operations on a BST include creating an empty tree, searching for a node, inserting a new node, and deleting an existing node.