Graph RepresentationsIn graph theory, a graph representation is a technique to store graph into the memory of computer. To represent a graph, we just need the set of vertices, and for each vertex the neighbors of the vertex (vertices which is directly connected to it by an edge). If it is a weighted graph, then the weight will be associated with each edge. There are different ways to optimally represent a graph, depending on the density of its edges, type of operations to be performed and ease of use. 1. Adjacency Matrix
Note, even if the graph on 100 vertices contains only 1 edge, we still have to have a 100x100 matrix with lots of zeroes.
ExampleConsider the following undirected graph representation: Undirected graph representation Directed graph represenation See the directed graph representation: In the above examples, 1 represents an edge from row vertex to column vertex, and 0 represents no edge from row vertex to column vertex. Undirected weighted graph represenation Pros: Representation is easier to implement and follow. Cons: It takes a lot of space and time to visit all the neighbors of a vertex, we have to traverse all the vertices in the graph, which takes quite some time. 2. Incidence MatrixIn Incidence matrix representation, graph can be represented using a matrix of size: Total number of vertices by total number of edges. It means if a graph has 4 vertices and 6 edges, then it can be represented using a matrix of 4X6 class. In this matrix, columns represent edges and rows represent vertices. This matrix is filled with either 0 or 1 or 1. Where,
ExampleConsider the following directed graph representation. 3. Adjacency List
ExampleLet's see the following directed graph representation implemented using linked list: We can also implement this representation using array as follows: Pros:
Cons:
Next TopicTree and Forest
