Trees are non-linear data structures that represent hierarchical relationships. They have elements called nodes connected by edges or branches. The root node has no parent, leaf nodes have no children, and sibling nodes share the same parent. Trees can be traversed in preorder, inorder, or postorder sequences by recursively processing nodes and their subtrees. Binary trees restrict nodes to having at most two children.