data structures using descendant node descendant node is any successor node on any path from the node to leaf node leaf nodes do not have any descendants in the tree given in fig nodes cgjand are the descendants of node root node level number every node in the tree is assigned level number in such way that the root node is at level children of the root node are at level number thusevery node is at one level higher than its parent soall child nodes have level number given by parent' level number degree degree of node is equal to the number of children that node has the degree of leaf node is zero figure tree in-degree in-degree of node is the number of edges arriving at that node out-degree out-degree of node is the number of edges leaving that node types of trees trees are of following types general trees forests binary trees binary search trees expression trees tournament trees general trees general trees are data structures that store elements hierarchically the top node of tree is the root node and each nodeexcept the roothas parent node in general tree (except the leaf nodesmay have zero or more sub-trees general trees which have sub-trees per node are called ternary trees howeverthe number of sub-trees for any node may be variable for examplea node can have sub-treewhereas some other node can have sub-trees although general trees can be represented as adtsthere is always problem when another sub-tree is added to node that already has the maximum number of sub-trees attached to it even the algorithms for searchingtraversingaddingand deleting nodes become much more complex as there are not just two possibilities for any node but multiple possibilities to overcome the complexities of general treeit may be represented as graph data structure (to be discussed later)thereby losing many of the advantages of the tree processes thereforea better option is to convert general trees into binary trees general tree when converted to binary tree may not end up being well formed or fullbut the advantages of such conversion enable the programmer to use the algorithms for processes that are used for binary trees with minor modifications forests forest is disjoint union of trees set of disjoint trees (or forestsis obtained by deleting the root and the edges connecting the root node to nodes at level we have already seen that every node of tree is the root of some sub-tree thereforeall the sub-trees immediately below node form forest