Graph is a fundamental data structure used in computer science and mathematics to represent relationships between objects. It consists of a set of vertices or nodes connected by edges. In this article, we will explore what a graph is and how it can be represented using examples.

## Graph Definition

A graph is an abstract data type that consists of two main components: vertices and edges. Vertices, also known as nodes, are the entities or elements in the graph. Edges are the connections or relationships between these elements.

There are two types of graphs: directed and undirected. In a directed graph, the edges have a specific direction associated with them, while in an undirected graph, the edges have no direction.

## Graph Representation

A graph can be represented visually using diagrams or mathematically using various data structures such as adjacency matrix or adjacency list.

### Adjacency Matrix

An adjacency matrix is a 2D matrix where each cell represents whether there is an edge between two vertices. If there is an edge between vertex i and vertex j, then the cell at row i and column j will have a value indicating the presence of the edge.

**Example:**

| A | B | C | D | ------------------- A | 0 | 1 | 0 | 1 | ------------------- B | 1 | 0 | 1 | 0 | ------------------- C | 0 | 1 | 0 | 1 | ------------------- D | 1 | 0 | 1 | 0 |

In the above example, we have four vertices A, B, C, and D. The presence of an edge between two vertices is indicated by ‘1’, while ‘0’ represents the absence of an edge. For example, there is an edge between A and B, A and D, B and C, and C and D.

### Adjacency List

An adjacency list is a collection of linked lists or arrays where each vertex stores a list of its adjacent vertices. This representation is more memory-efficient when the graph has fewer edges.

**Example:**

A -> B -> D B -> A -> C C -> B -> D D -> A -> C

In the above example, each vertex is represented by a letter, and the arrows indicate the presence of an edge. For instance, vertex A is connected to vertices B and D.

## Applications of Graphs

- Graphs are widely used in social networks to represent connections between individuals.
- In computer networks, graphs are used to model connections between devices.
- Graphs are essential in route planning algorithms used by navigation systems.
- In biology, graphs can represent protein interactions or genetic relationships.

## Conclusion

A graph is a powerful data structure that helps us understand and analyze relationships between objects. It can be represented visually using diagrams or mathematically using data structures like adjacency matrix or adjacency list. Understanding graphs and their applications can greatly enhance problem-solving skills in various domains.

__References:__

- GeeksforGeeks – Graph Data Structure – https://www.org/graph-data-structure-and-algorithms/
- Brilliant – Graph Theory Fundamentals – https://brilliant.org/wiki/graph-theory-fundamentals/