Graph data structures have numerous real-world applications. Recognizing what these applications are and how best to work with graphs in your day-to-day is a must-have skill for any Software Engineer.

In this course, you'll identify what is meant by a graph. You'll examine the typical, real-life applications of graphs and explore how they can be represented in programming languages.

You'll move on to define different types of graphs, such as directed and undirected graphs, connected graphs, trees, and weighted and unweighted graphs.

Next, you'll explore how to write code and perform operations on graphs. Finally, you'll implement graph representations in code using the adjacency matrix representation, the adjacency list, and adjacency set representation.