Observe the pictures given below:

The first picture is a family tree, the second one shows the student council system of a school and the third one represents the company pecking order.

What is common in all the pictures is the way that the data is represented: in a **hierarchical** manner. The data structure which is used to represent data in a hierarchical manner is known as Tree. Tree in computer science is like a tree in the real world, the only difference is that in computer science it is visualized as upside-down with root on the top and branches originating from the root to the leaves of the tree.

In Technical language: A tree is a non linear data structure in which each node can point to more than one node and as stated above a tree data structure stores data in a hierarchical manner

Glossary:

1. **Root**: The root of a tree is the node with no parents (Node A). There can be a maximum of one root node

2. **Edge**: link from parent to child

3. **Leaf**: a node with no child (Nodes D,H,F,G)

4. **Siblings**: Children nodes of the same parent node (B,C) (D, E and F)

5.** Ancestor:** a node say ‘p’ is an ancestor of node say ‘q’ if there exists a path from root to p and q. ( Nodes A, B, E are ancestors of H)

6. **Depth of a node**: is the length of the path from the root to the node (depth of node G is 2, A-C-G)

7. **Height of a node**: length of path from that node to the deepest node. ( height of B is 2, B-E-H)

8. **Level: **set of all nodes at a given depth. (node A is at level 0, nodes B,C are at level 1, Nodes D,E,F,G are at level 2, Node H is at level 3)

9. **Height/Depth of tree**: length of path from root to the deepest node. A (rooted) tree with only one node (the root) has a height of zero

Different types of Trees include:

1. General tree

2. Binary Tree

3. Binary Search Tree

4. AVL Tree

5. Red- Black Tree

6. N-ary Tree

(these will be discussed in coming up posts so stay tuned!)

References:

1. Data Structures and Algorithms made easy in Java (by Narasimha Karumanchi)

2. https://www.thecrazyprogrammer.com/

**Happy Learning!!**