A tree is a nonlinear data structure that consists of a root node and zero or more subtrees. The root node can have any number of child nodes, but each child can only have one parent. Nodes maintain a parent-child relationship, with one node designated as the root and the remaining nodes forming non-empty subtrees below the root. Trees allow for hierarchical categorization of data.