The document discusses various non-linear data structures, focusing on trees. It defines what a tree is and provides examples. It then describes different tree terminologies like root, node, leaf, height, etc. It discusses binary trees in more detail, including their representation and types. It also covers various tree traversal techniques like inorder, preorder and postorder traversal. Finally, it discusses some applications of trees like binary search trees, expression trees, threaded binary trees and B-trees.