Trees are hierarchical data structures composed of nodes connected by edges. A tree has a root node with child nodes below it. Leaf nodes have no children, while internal nodes have children. Binary trees restrict nodes to having 0, 1, or 2 children. Binary search trees organize nodes so that all left descendants of a node are less than or equal to the node and all right descendants are greater than or equal. Common tree operations include insertion, searching, and deletion.