A graph is a non-linear data structure, which consists of vertices(or nodes) connected by edges(or arcs) where edges may be directed or undirected.

- In
**Computer science**graphs are used to represent the flow of computation. **Google maps**uses graphs for building transportation systems, where intersection of two(or more) roads are considered to be a vertex and the road connecting two vertices is considered to be an edge, thus their navigation system is based on the algorithm to calculate the shortest path between two vertices.- In
**Facebook**, users are considered to be the vertices and if they are friends then there is an edge running between them. Facebook’s Friend suggestion algorithm uses graph theory. Facebook is an example of**undirected graph**. - In
**World Wide Web**, web pages are considered to be the vertices. There is an edge from a page u to other page v if there is a link of page v on page u. This is an example of**Directed graph**. It was the basic idea behind Google Page Ranking Algorithm. - In
**Operating System**, we come across the Resource Allocation Graph where each process and resources are considered to be vertices. Edges are drawn from resources to the allocated process, or from requesting process to the requested resource. If this leads to any formation of a cycle then a deadlock will occur.

Thus the development of algorithms to handle graphs is of major interest in the field of computer science.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Applications of linked list data structure
- Static Data Structure vs Dynamic Data Structure
- Graph Coloring | Set 1 (Introduction and Applications)
- Graph Types and Applications
- Difference between data type and data structure
- Applications of Minimum Spanning Tree Problem
- Applications of Depth First Search
- Applications of Breadth First Traversal
- Karger’s algorithm for Minimum Cut | Set 2 (Analysis and Applications)
- Applications of Hashing
- Deploying Node Applications
- GRE Algebra | Applications
- Applications of Dijkstra's shortest path algorithm
- Graph implementation using STL for competitive programming | Set 2 (Weighted graph)
- Detect cycle in the graph using degrees of nodes of graph
- Convert the undirected graph into directed graph such that there is no path of length greater than 1
- Maximum number of edges that N-vertex graph can have such that graph is Triangle free | Mantel's Theorem
- Convert undirected connected graph to strongly connected directed graph
- Design a Queue data structure to get minimum or maximum in O(1) time
- Difference between fundamental data types and derived data types

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.