In a programming interview, one of the most favorite questions is about Graph. It is a non-linear data structure. It is a set of vertices and edges. There are two types of Graph; unredirected (two-way relationship) and redirected (one-way relationship).
There are three ways to represent Graph; Adjacency Matrix, Adjacency List, and Adjacency Set.
A two-dimensional boolean matrix which rows and columns represent the vertices. Each cell represents the edges, the relationship between the vertices.
Each vertex has a pointer to a linked list. The linked list contains the other nodes that the vertex connects to.
Similar to Adjacency List. Instead of using a linked list, it is using a set. A set is a two-dimensional boolean matrix. Each entry indicates the incident of the edge.