This document discusses trees as a non-linear data structure. It defines key tree terminology like root, parent, children, internal and external nodes. It also covers tree traversal algorithms like depth-first and breadth-first search. Algorithms are presented to calculate the depth and height of individual nodes and of the entire tree. The runtime of these algorithms depends on the structure of the tree but is typically O(n) where n is the number of nodes.