**What Is Type of Graph in Data Structure?**

A graph is a fundamental data structure used in computer science to represent relationships between different objects or entities. It consists of a set of vertices (also known as nodes) and a set of edges that connect these vertices.

The edges represent the relationships or connections between the vertices.

## Undirected Graph:

An undirected graph is a type of graph where the edges have no direction. This means that the relationship between two vertices is symmetric and can be traversed in both directions.

In an undirected graph, if there is an edge connecting vertex A to vertex B, then there is also an edge connecting vertex B to vertex A.

### Example:

Consider a social network where each person is represented by a vertex, and the friendship between two people is represented by an edge. In an undirected graph, if person A is friends with person B, then person B is also friends with person A.

## Directed Graph:

A directed graph is a type of graph where the edges have direction. This means that the relationship between two vertices is asymmetric and can only be traversed in one direction.

In a directed graph, if there is an edge connecting vertex A to vertex B, it does not necessarily mean that there is an edge connecting vertex B to vertex A.

Consider a website where web pages are represented by vertices, and hyperlinks between pages are represented by edges. In a directed graph, if page A has a hyperlink pointing to page B, it does not necessarily mean that page B has a hyperlink pointing back to page A.

## Weighted Graph:

A weighted graph is a type of graph where each edge has a weight or value associated with it. This weight represents the cost, distance, or any other relevant metric between the two vertices connected by the edge.

Weighted graphs are commonly used to represent networks, transportation systems, and optimization problems.

Consider a road map where cities are represented by vertices, and the distance between cities is represented by edges. In a weighted graph, each edge connecting two cities would have a weight representing the distance between those cities.

## Cyclic Graph:

A cyclic graph is a type of graph that contains at least one cycle. A cycle in a graph is a path that starts and ends at the same vertex, passing through one or more other vertices along the way.

Cyclic graphs are used to model processes that involve feedback loops or recursive relationships.

Consider a workflow diagram where each step is represented by a vertex, and the flow from one step to another is represented by edges. If there is a loop in the workflow that allows for revisiting previous steps, then the graph representing this workflow would be cyclic.

## Acyclic Graph:

An acyclic graph is a type of graph that does not contain any cycles. This means that there are no paths that start and end at the same vertex.

Acyclic graphs are often used to represent hierarchical structures or dependencies between tasks.

Consider an organizational chart where each employee is represented by a vertex, and the reporting hierarchy between employees is represented by edges. In an acyclic graph, there would be no cycles in this hierarchy, meaning that no employee reports directly or indirectly to themselves.

- An undirected graph has symmetric relationships.
- A directed graph has asymmetric relationships.
- A weighted graph has values associated with edges.
- A cyclic graph contains at least one cycle.
- An acyclic graph does not contain any cycles.

Understanding the different types of graphs in data structures is essential for solving various problems and designing efficient algorithms. By using the appropriate type of graph, you can accurately represent and analyze complex relationships between objects or entities.