# What is the difference between Tree and Graph

We usually use a diverse range of data structure to store our data and information. To store them in a more sequential manner and to access them easily, we use data structures such as tree, graph, queue, stack, etc. In this article, we will mainly be talking about tree and graph data structure and the difference between the two.

### What is Tree?

Tree is known to be a data structure that arranges and stores the data given in a hierarchical manner. A tree data structure is basically described as the huge storage management of objects and data and information popularly known as the nodes which are interconnected in order to form a hierarchy. It is generally a non-linear data structure as we know its nature of not keeping data or information in a consecutive pattern. Its pretty much a hierarchy as the data needs to rearranged at any given point or level. In this type data structure, the node that appears at the top of the hierarchy is specifically known as the root node and the node which we need to find is known as the goal. Every single node in the tree data structure holds some piece of data or information even if its very little. Also, we wonder how do we traverse or move to the next node? Well, each and every node holds some reference or link to the other node and that is how we traverse in a tree data structure. This is also known as the children as they are descended from some other node or also called the child node. There are so many other terminologies related to the tree data structure which we will be explaining one by one. The nodes that have the same parent are called the sibling nodes. The node of the tree that doesn’t contain any child is called the leaf node. A node that contains at least one child is known as the internal node.

### WHAT IS GRAPH

A graph data structure is generally described as the one which contains diverse range of vertices and edges that are specifically used to connect all of these. A graph is sometimes also represented as a cyclic tree where the nodes usually had a strange and complicated relation between them rather than having the usual parent – child relationship. The graph can be described as an ordered set G( V, E ) where we know that V(G) usually represents the set of vertices and the E(G) will always indicate the set of edges that are mainly used to connect the vertices.

### Difference between Tree and Graph.

Basis for comparison | tree | graph |

Definition | A tree is generally a non - linear data structure in which the components are kept in a systematic manner on various levels. | A graph is also a non-linear data structure. |

Structure | It is a whole bunch of nodes and vertices. For example, a single node is generally portrayed by N and edge is denoted by E, so they are simply written as: T = (N, E) | It is a whole bunch of edges and nodes where the vertices are denoted by V, and the edges are denoted by E and it can be written as: T = (V, E) |

Root node | In this kind of data structure we have a unique node that is known as the parent node. It is generally the top most nodes in the tree data structure. | In this type of data structure there is no unique node. |

Loop | This type of data structure doesn’t form any kind of loop or cycles. | This type of data structure can form loops or cycles. |

Model type | This type of data structure is generally a hierarchical structure as they can be rearranged on various levels which ultimately lead to creating a hierarchy. For example, any given office or company will have a hierarchy. | This type of data structure is generally termed as a network system. For example, instagram is a social networking site that generally uses the graph data structure. |

Edges | If there are g number of nodes present in the data structure then there will g-1 number of edges present. | In this type of data structure the number of edges depends on the graph. |

Type of edge | It always has directed edges. | In this type of data structure, it is either directed or undirected or sometimes even both. |

applications | This type of data structure is used for its purpose in searching, deleting, inserting, etc. | This type of data structure is generally used in finding the shortest path in the system. |