Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Graph in Data Structure

A graph can be defined as group of vertices and edges that are used to connect
these vertices. A graph can be seen as a cyclic tree, where the vertices (Nodes)
maintain any complex relationship among them instead of having parent
child relationship.

A graph G can be defined as an ordered set G(V, E) where V(G) represents the
set of vertices and E(G) represents the set of edges which are used to connect
these vertices.

A Graph G(V, E) with 5 vertices (A, B, C, D, E) and six edges ((A,B), (B,C),
(C,E), (E,D), (D,B), (D,A)) is shown in the following figure.

Graph Terminology
Path
A path can be defined as the sequence of nodes that are followed in order to
reach some terminal node V from the initial node U.

Closed Path
A path will be called as closed path if the initial node is same as terminal node.
A path will be closed path if V0=VN.

Simple Path
If all the nodes of the graph are distinct with an exception V0=VN, then such
path P is called as closed simple path.

Sanchita Rani Das (Lecturer, Dept. of CSE)


Cycle
A cycle can be defined as the path which has no repeated edges or vertices
except the first and last vertices.

Loop
An edge that is associated with the similar end points can be called as Loop.

Adjacent Nodes
If two nodes u and v are connected via an edge e, then the nodes u and v are
called as neighbours or adjacent nodes.

Degree of the Node


A degree of a node is the number of edges that are connected with that node.
A node with degree 0 is called as isolated node.

Types of Graphs
1. Null Graph

•A graph whose edge set is empty is called as a null graph.


• In other words, a null graph does not contain any edges in it.
Example:

Here,
• This graph consists only of the vertices and there are no edges in it.
• Since the edge set is empty, therefore it is a null graph.

Sanchita Rani Das (Lecturer, Dept. of CSE)


2. Trivial Graph

•A graph having only one vertex in it is called as a trivial graph.


• It is the smallest possible graph.

Example:

Here,
• This graph consists of only one vertex and there are no edges in it.
• Since only one vertex is present, therefore it is a trivial graph.

3. Non-Directed Graph

•A graph in which all the edges are undirected is called as a non-directed


graph.
• In other words, edges of an undirected graph do not contain any direction.

Example:

Here,
• This graph consists of four vertices and four undirected edges.
• Since all the edges are undirected, therefore it is a non-directed graph.

Sanchita Rani Das (Lecturer, Dept. of CSE)


4. Directed Graph

•A graph in which all the edges are directed is called as a directed graph.
• In other words, all the edges of a directed graph contain some direction.
• Directed graphs are also called as Digraphs.

Example:

Here,
• This graph consists of four vertices and four directed edges.
• Since all the edges are directed, therefore it is a directed graph.

5. Connected Graph

•A graph in which we can visit from any one vertex to any other vertex
is called as a connected graph.
• In connected graph, at least one path exists between every pair of
vertices.

Example:

Sanchita Rani Das (Lecturer, Dept. of CSE)


Here,
• Inthis graph, we can visit from any one vertex to any other vertex.
• There exists at least one path between every pair of vertices.
• Therefore, it is a connected graph.

6. Disconnected Graph

•A graph in which there does not exist any path between at least one pair
of vertices is called as a disconnected graph.

Example:

Here,
• This graph consists of two independent components which are
disconnected.
• It is not possible to visit from the vertices of one component to the
vertices of another component.
• Therefore, it is a disconnected graph.

7. Regular Graph

•A graph in which degree of all the vertices is same is called as a regular


graph.
• If all the vertices in a graph are of degree ‘k’, then it is called as a “k-
regular graph”.

Sanchita Rani Das (Lecturer, Dept. of CSE)


Examples:

In these graphs,
• Allthe vertices have degree-2.
• Therefore, they are 2-Regular graphs.

8. Complete Graph

•A graph in which exactly one edge is present between every pair of


vertices is called as a complete graph.
• A complete graph of ‘n’ vertices contains exactly C2 edges.
n

• A complete graph of ‘n’ vertices is represented as Kn.

Examples:

In these graphs,
• Each vertex is connected with all the remaining vertices through exactly
one edge.
• Therefore, they are complete graphs.

Sanchita Rani Das (Lecturer, Dept. of CSE)


9. Cycle Graph

•A simple graph of ‘n’ vertices (n>=3) and n edges forming a cycle of


length ‘n’ is called as a cycle graph.
• In a cycle graph, all the vertices are of degree 2.

Examples:

In these graphs,
• Each vertex is having degree 2.
• Therefore, they are cycle graphs.

10. Weighted Graph


• In a weighted graph, each edge is assigned with some data such as length
or weight.
• The weight of an edge e can be given as w(e) which must be a positive
(+) value indicating the cost of traversing the edge.

Sanchita Rani Das (Lecturer, Dept. of CSE)


11. Finite Graph

•Agraph consisting of finite number of vertices and edges is called as a


finite graph.
Example:

Here,
• Thisgraph consists of finite number of vertices and edges.
• Therefore, it is a finite graph.

12. Infinite Graph

•A
graph consisting of infinite number of vertices and edges is called as
an infinite graph.
Example:

Here,
• Thisgraph consists of infinite number of vertices and edges.
• Therefore, it is an infinite graph.

Sanchita Rani Das (Lecturer, Dept. of CSE)


13. Planar Graph

•A planar graph is a graph that we can draw in a plane such that no two
edges of it cross each other.

Example:

Here,
• Thisgraph can be drawn in a plane without crossing any edges.
• Therefore, it is a planar graph.

14. Simple Graph

•Agraph having no self-loops and no parallel edges in it is called as a


simple graph.
Example:

Here,
• Thisgraph consists of three vertices and three edges.
• There are neither self-loops nor parallel edges.
• Therefore, it is a simple graph.

Sanchita Rani Das (Lecturer, Dept. of CSE)


15. Multi Graph

•A
graph having no self-loops but having parallel edge(s) in it is called as
a multi graph.
Example:

Here,
• Thisgraph consists of three vertices and four edges out of which one
edge is a parallel edge.
• There are no self-loops but a parallel edge is present.
• Therefore, it is a multi-graph.

16. Pseudo Graph

•A
graph having no parallel edges but having self-loop(s) in it is called as
a pseudo graph.
Example:

Here,
• Thisgraph consists of three vertices and four edges out of which one
edge is a self-loop.
• There are no parallel edges but a self-loop is present.
• Therefore, it is a pseudo graph.

Sanchita Rani Das (Lecturer, Dept. of CSE)


17. Euler Graph

• Euler
Graph is a connected graph in which all the vertices are even
degree.
Example:

Here,
• This graph is a connected graph and the degree of all the vertices is even.
• Therefore, it is a Euler graph.

18. Hamiltonian Graph

• If
there exists a closed walk in the connected graph that visits every
vertex of the graph exactly once (except starting vertex) without
repeating the edges, then such a graph is called as a Hamiltonian graph.
Example:

Here,
• This graph contains a closed walk ABCDEFG that visits all the vertices
(except starting vertex) exactly once.
• All the vertices are visited without repeating the edges.
• Therefore, it is a Hamiltonian Graph.

Sanchita Rani Das (Lecturer, Dept. of CSE)


Graph Representation
By Graph representation, we simply mean the technique to be used to store
some graph into the computer's memory. There are two ways to store Graphs
into the computer's memory:

i. Sequential Representation (or, Adjacency matrix representation)


ii. Linked List Representation (or, Adjacency list representation)

In sequential representation, an adjacency matrix is used to store the graph.


Whereas in linked list representation, there is a use of an adjacency list to store
the graph.

i) Sequential Representation
In sequential representation, there is a use of an adjacency matrix to represent
the mapping between vertices and edges of the graph. We can use an adjacency
matrix to represent the undirected graph, directed graph, weighted directed
graph, and weighted undirected graph.

Adjacency matrix is easier to implement and follow. An adjacency matrix can


be used when the graph is dense and a number of edges are large. Though, it
is advantageous to use an adjacency matrix, but it consumes more space. Even
if the graph is sparse, the matrix still consumes the same space.

If adj[i][j] = w, it means that there is an edge exists from vertex i to vertex j


with weight w.

An entry Aij in the adjacency matrix representation of an undirected graph G will


be 1 if an edge exists between Vi and Vj. If an Undirected Graph G consists
of n vertices, then the adjacency matrix for that graph is n x n, and the matrix
A = [aij] can be defined as:

aij = 1 {if there is a path exists from Vi to Vj}

aij = 0 {Otherwise}

It means that, in an adjacency matrix, 0 represents that there is no association


exists between the nodes, whereas 1 represents the existence of a path
between two edges.

If there is no self-loop present in the graph, it means that the diagonal entries
of the adjacency matrix will be 0.

Sanchita Rani Das (Lecturer, Dept. of CSE)


a) Adjacency Matrix for Undirected Graph

In the above figure, an image shows the mapping among the vertices (A, B, C,
D, E), and this mapping is represented by using the adjacency matrix.

b) Adjacency Matrix for Directed Graph

In a directed graph, edges represent a specific path from one vertex to another
vertex. Suppose a path exists from vertex A to another vertex B; it means that
node A is the initial node, while node B is the terminal node.

Consider the below-directed graph and try to construct the adjacency matrix of it.

In the above graph, we can see there is no self-loop, so the diagonal entries of
the adjacent matrix are 0.

c) Adjacency Matrix for Weighted Directed Graph

It is similar to an adjacency matrix representation of a directed graph except


that instead of using the '1' for the existence of a path, here we have to use

Sanchita Rani Das (Lecturer, Dept. of CSE)


the weight associated with the edge. The weights on the graph edges will be
represented as the entries of the adjacency matrix.

We can understand it with the help of an example. Consider the below graph and
its adjacency matrix representation. In the representation, we can see that the
weight associated with the edges is represented as the entries in the adjacency
matrix.

ii) Linked List Representation


An adjacency list is used in the linked representation to store the Graph in the
computer's memory. It is efficient in terms of storage as we only have to store
the values for edges. In an adjacency list, it is easy to add a vertex. Because of
using the linked list, it also saves space.

a) Adjacency List for Undirected Graph

In the above figure, we can see that there is a linked list or adjacency list for
every node of the graph. From vertex A, there are paths to vertex B and vertex
D. These nodes are linked to nodes A in the given adjacency list.

Sanchita Rani Das (Lecturer, Dept. of CSE)


An adjacency list is maintained for each node present in the graph, which
stores the node value and a pointer to the next adjacent node to the respective
node. If all the adjacent nodes are traversed, then store the NULL in the
pointer field of the last node of the list.

The sum of the lengths of adjacency lists is equal to twice the number of edges
present in an undirected graph.

b) Adjacency List for Directed Graph

For a directed graph, the sum of the lengths of adjacency lists is equal to the
number of edges present in the graph.

c) Adjacency List for Weighted Directed Graph

In the case of a weighted directed graph, each node contains an extra field that
is called the weight of the node.

Sanchita Rani Das (Lecturer, Dept. of CSE)

You might also like