A binary tree is a tree data structure in computer science wherein every node has at most two offspring, referred to as the left child and the right child. A (non-empty) binary tree is a tuple (L, S, R), where L and R are binary trees or the empty set, and S is a singleton set containing the root, according to a recursive definition using only set theory notions. Some authors enable the binary tree to also be the empty set.