A tree is a non-linear data structure. It means you cannot access an element of a tree in a straightforward manner. In this lesson, you learn about tree basics.

This will serve as a foundation for future topics on trees. You can start learning about other topics if familiar with the basics.

### Informal definition of Tree

A tree is a set of one or more nodes with a special node called a *Root node*. Every none points to a left node and a right node. Sometimes left, right or both are missing and a node points to nothing.

Every node is part of some smaller set of nodes called a *Sub-tree*. Each sub-tree has more sub-trees.

## Tree basics – Directed vs Undirected Tree

In an undirected tree, the edge between two nodes has no direction associated with it. However, a directed tree has some important properties.

- The directed tree is
*acyclic*means there is loop between the nodes. - The directed tree is
*digraph*means it is like a graph with direction. Each node has associated edges. If the node pointed by some other node, it is called an*In-degree*and if the node is pointing to some other node, its called an*Out-degree.* - Root node has in-degree 0 and all other nodes have in-degree of 1.
- The minimum number of nodes allowed in a directed tree is 1. So, an isolated node is a directed tree.

## Leaf Nodes

In a directed tree with nodes that has an out-degree of 0 is called a *Leaf node or Terminal node.*

In the above figure, 5, 6, 7, 8, 9 are leaf nodes.

## Branch Nodes

In a directed tree with all nodes other than root and leaf nodes are called Branch nodes. For example,

In the above figure, 2, 3 and 4 are branch nodes.

### Level of a Tree

Suppose you want to reach the node 8 from root node 1, then starting from root node, we go through following path

**1 –> 4 –> 8**

So, the level of any node is length of its path from the root node. The level of root node is 0 and level of node 8 is 2.

## Tree basics – Ordered Tree

Sometimes the directed tree is ordered, that is, at each level the order is specified, and this type of tree is called an *Ordered tree.*

In the above figure, the Tree A and Tree B are the same tree but ordered differently.

## Node degree

The node degree corresponds to number of children of the node. The node 3,4,and 6 in tree A are leaf nodes and has a degree of 0 because it not a parent of any other node.

The node 2 from tree B has a degree of 2 because node 4 and node 3 are its children.

## The Concept of Forest

If we delete root node and its edges from tree A or tree B, we will get two separate trees. This particular set of trees is known as a* Forest.*

For example, we get the following forest after deleting the root. These forest can be represented as sets.They are the same sets.

**Forest A ={ (2,3,4),( 5,6)} Forest B = {(5,6),(2,3,4)}**

## Descendant and Children of a Node

There is a node called S and it is reachable from node N means there is a path from N to S. Then an such node S is called a *Descendant *of a node N.

Suppose a node S reachable by a single edge E from node N is called a **Child **of node N and the node N is a* Parent* of child node S.

For example, In Tree A

The node 2 and node 5 are children of node 1

The node 3 and node 4 are not children, but descendant of node 1.

Note: We will be using this tree basics terminology in all future lessons. Make yourselves familiar with the concepts.

## References

E.Balaguruswamy. 2013. *Data Structures Using C.* McGraw Hill Education.

Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein. 2009. *Introduction to Algorithms.* MIT Press.