**Which Data Model Graph Is Used in Data Structure?**

In the field of data structures, graphs are an essential concept used to represent relationships between objects. A graph consists of a set of vertices or nodes connected by edges.

There are multiple types of graphs, each with its own characteristics and applications. Let’s explore the most commonly used graph data models in data structures.

## 1. Undirected Graph

An undirected graph is a type of graph where edges have no direction or orientation. In other words, the relationship between nodes is symmetric. If there is an edge connecting node A to node B, it implies that there is also an edge connecting node B to node A.

__Properties of Undirected Graph:__

- Edges have no direction.
- Edges are bidirectional.
- No cycles or loops exist in the graph.

__Applications:__

- Social networks: Modeling friendships between users.
- Transportation networks: Representing connections between cities or airports.

## 2. Directed Graph

A directed graph, also known as a digraph, is a graph where edges have a specific direction or orientation. The relationship between nodes is asymmetric, meaning that if there is an edge from node A to node B, it does not imply the existence of an edge from node B to node A.

__Properties of Directed Graph:__

- Edges have a specific direction.
- Edges are unidirectional.
- Cycles or loops can exist in the graph.

__Applications:__

- Web page links: Representing hyperlinks between web pages.
- Process flow: Modeling the flow of tasks in a workflow.

## 3. Weighted Graph

A weighted graph is a graph where each edge is assigned a weight or cost. The weight represents the value or distance associated with traversing that edge. It can be used to measure the importance, length, or cost of a particular connection between nodes.

__Properties of Weighted Graph:__

- Edges have an associated weight or cost.
- The weight may represent distance, time, or any other relevant metric.
- The weight can be positive, negative, or zero.

__Applications:__

- GPS navigation: Determining the shortest path between two locations.
- Scheduling: Optimizing resource allocation based on costs and constraints.

## 4. Bipartite Graph

A bipartite graph is a graph whose vertices can be divided into two distinct sets such that there are no edges between vertices within the same set. In other words, all edges connect nodes from one set to nodes from the other set.

__Properties of Bipartite Graph:__

- The graph can be divided into two disjoint sets of vertices.
- All edges connect vertices from one set to vertices from the other set.

__Applications:__

- Social network analysis: Identifying communities with distinct characteristics.
- Matching problems: Assigning resources to tasks based on compatibility.

Understanding the different types of graph data models is crucial for designing efficient data structures and algorithms. Each type has its own strengths and weaknesses, making them suitable for specific use cases. By incorporating graphs into your data structures, you can represent complex relationships and solve a wide range of problems.