**Graph** :

A graph is collection of two sets V and E where V is a finite non-empty set of vertices and E is a finite non-empty set of edges.

- Vertices are nothing but the nodes in the graph.
- Two adjacent vertices are joined by edges.
- Any graph is denoted as G = {V, E}.

For Example:

G = {{V_{1}, V_{2}, V_{3}, V_{4}, V_{5}, V_{6}}, {E_{1}, E_{2}, E_{3}, E_{4}, E_{5}, E_{6}, E_{7}}}

**Tree : **

A tree is a finite set of one or more nodes such that –

- There is a specially designated node called root.
- The remaining nodes are partitioned into n>=0 disjoint sets T
_{1}, T_{2}, T_{3}, …, T_{n}

where T_{1}, T_{2}, T_{3}, …, T_{n}is called the subtrees of the root.

The concept of tree is represented by following Fig.

**Graph vs Tree**

No. | Graph | Tree |
---|---|---|

1 | Graph is a non-linear data structure. | Tree is a non-linear data structure. |

2 | It is a collection of vertices/nodes and edges. | It is a collection of nodes and edges. |

3 | Each node can have any number of edges. | General trees consist of the nodes having any number of child nodes. But in case of binary trees every node can have at the most two child nodes. |

4 | There is no unique node called root in graph. | There is a unique node called root in trees. |

5 | A cycle can be formed. | There will not be any cycle. |

6 | Applications: For finding shortest path in networking graph is used. | Applications: For game trees, decision trees, the tree is used. |

## Recommended Posts:

- Sub-tree with minimum color difference in a 2-coloured tree
- Check if a given graph is tree or not
- Check if a given tree graph is linear or not
- DFS for a n-ary tree (acyclic graph) represented as adjacency list
- Tree, Back, Edge and Cross Edges in DFS of Graph
- Check whether given degrees of vertices represent a Graph or Tree
- Maximum Possible Edge Disjoint Spanning Tree From a Complete Graph
- Maximum number of edges to be added to a tree so that it stays a Bipartite graph
- Maximum difference between node and its ancestor in Binary Tree
- Graph implementation using STL for competitive programming | Set 2 (Weighted graph)
- Difference between sums of odd level and even level nodes of a Binary Tree
- Complexity of different operations in Binary tree, Binary Search Tree and AVL tree
- Given level order traversal of a Binary Tree, check if the Tree is a Min-Heap
- Convert an arbitrary Binary Tree to a tree that holds Children Sum Property
- Check if a given Binary Tree is height balanced like a Red-Black Tree