Graphs
Graphs
Introduction to Graphs
Graph is a non-linear data structure. It contains a set of points
known as nodes (or vertices) and a set of links known as edges (or
Arcs). Here edges are used to connect the vertices. A graph is
defined as follows...
05/23/2025 1
Graphs
Example
The following is a graph with 5 vertices and 6 edges.
This graph G can be defined as G = ( V , E )
Where V = {A,B,C,D,E} and E = {(A,B),(A,C)(A,D),(B,D),(C,D),
(B,E), (E,D)}.
05/23/2025 2
Graphs
Graph Terminology
We use the following terms in graph data structure...
Vertex
Individual data element of a graph is called as Vertex. Vertex is
also known as node. In above example graph, A, B, C, D & E are
known as vertices.
Edge
An edge is a connecting link between two vertices. Edge is also
known as Arc. An edge is represented as (startingVertex,
endingVertex). For example, in above graph the link between
vertices A and B is represented as (A,B). In above example graph,
there are 7 edges (i.e., (A,B), (A,C), (A,D), (B,D), (B,E), (C,D),
(D,E)).
05/23/2025 3
Graphs
05/23/2025 4
Graphs
Undirected Graph
A graph with only undirected edges is said to be undirected graph.
Directed Graph
A graph with only directed edges is said to be directed graph.
Mixed Graph
A graph with both undirected and directed edges is said to be mixed
graph.
05/23/2025 5
Graphs
Origin
If a edge is directed, its first endpoint is said to be the origin of it.
Destination
If a edge is directed, its first endpoint is said to be the origin of it
and the other endpoint is said to be the destination of that edge.
Adjacent
If there is an edge between vertices A and B then both A and B are
said to be adjacent. In other words, vertices A and B are said to be
adjacent if there is an edge between them.
05/23/2025 6
Graphs
Incident
Edge is said to be incident on a vertex if the vertex is one of the
endpoints of that edge.
Outgoing Edge
A directed edge is said to be outgoing edge on its origin vertex.
Incoming Edge
A directed edge is said to be incoming edge on its destination
vertex.
Degree
Total number of edges connected to a vertex is said to be degree of
that vertex.
05/23/2025 7
Graphs
Indegree
Total number of incoming edges connected to a vertex is said to be
indegree of that vertex.
Outdegree
Total number of outgoing edges connected to a vertex is said to be
outdegree of that vertex.
Parallel edges or Multiple edges
If there are two undirected edges with same end vertices and two
directed edges with same origin and destination, such edges are
called parallel edges or multiple edges.
05/23/2025 8
Graphs
Self-loop
Edge (undirected or directed) is a self-loop if its two endpoints
coincide with each other.
Simple Graph
A graph is said to be simple if there are no parallel and self-loop
edges.
Path
A path is a sequence of alternate vertices and edges that starts at a
vertex and ends at other vertex such that each edge is incident to
its predecessor and successor vertex.
05/23/2025 9
Graphs
Graph Representations
1.Adjacency Matrix
2.Incidence Matrix
3.Adjacency List
05/23/2025 10
Graphs
Adjacency Matrix
In this representation, the graph is represented using a matrix of size
total number of vertices by a total number of vertices.
05/23/2025 12
Graphs
Incidence Matrix
05/23/2025 13
Graphs
Incidence Matrix
05/23/2025 14
Graphs
Adjacency List
In this representation, every vertex of a graph contains list of its
adjacent vertices.
05/23/2025 15
Graphs
Graph Traversal – BFS
05/23/2025 16
Graphs
05/23/2025 17
Graphs
DFS (Depth First Search)
We use the following steps to implement DFS traversal...
Step 1 - Define a Stack of size total number of vertices in the
graph.
05/23/2025 18
Graphs
05/23/2025 19
Graphs
Example
05/23/2025 20
Graphs
05/23/2025 21
Graphs
05/23/2025 22
Graphs
05/23/2025 23
Graphs
05/23/2025 24
Graphs
05/23/2025 25
Graphs
05/23/2025 26
Graphs
05/23/2025 27
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 28
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 29
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 30
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 31
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 32
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 33
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 34
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 35
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 36
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 37
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 38
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 39
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 40
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 41
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 42
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 43
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 44
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 45
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 46
Graph Traversal "Dr. Kunwar Pal,
CSED, NIT Jalandhar " 47
Graphs
05/23/2025 48
Graphs
05/23/2025 49
Graphs
05/23/2025 50
Graphs
05/23/2025 51
Graphs
05/23/2025 52
Graphs
05/23/2025 53
Graph Traversal "Dr. Kunwar Pal, CSED, N 54
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 55
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 56
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 57
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 58
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 59
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 60
IT Jalandhar "
Graph Traversal "Dr. Kunwar Pal, CSED, N 61
IT Jalandhar "
Graphs
Spanning Tree
05/23/2025 62
Graphs
Spanning Tree
05/23/2025 63
Graphs
05/23/2025 64
Graphs
Prim's Algorithm
Prim's algorithm starts with the single node and explore all the adjacent
nodes with all the connecting edges at every step. The edges with the
minimal weights causing no cycles in the graph got selected.
05/23/2025 65
Graphs
Prim’s Approach
05/23/2025 66
Graphs
Example :
Construct a minimum spanning tree of the graph given in the
following figure by using prim's algorithm.
Solution
o Step 1 : Choose a starting vertex B.
o Step 2: Add the vertices that are adjacent to B. the edges that
connecting the vertices are shown by dotted lines.
05/23/2025 67
Graphs
o Step 3: Choose the edge with the minimum weight among all. i.e.
BD and add it to MST. Add the adjacent vertices of D i.e. C and E.
o Step 3: Choose the edge with the minimum weight among all. In this
case, the edges DE and CD are such edges. Add them to MST and
explore the adjacent of C i.e. E and A.
o Step 4: Choose the edge with the minimum weight i.e. CA. We
can't choose CE as it would cause cycle in the graph.
The graph produces in the step 4 is the minimum spanning tree of the
graph shown in the above figure.
The cost of MST will be calculated as;
cost(MST) = 4 + 2 + 1 + 3 = 10 units.
05/23/2025 68
Graphs
05/23/2025 69
05/23/2025 70
Graphs
Kruskal's Algorithm
05/23/2025 71
Graphs
Solution
o Step 1: Create a forest in such a way that each graph is a
separate tree.
05/23/2025 72
Graphs
ELSE
Discard the edge
Step 6: END
05/23/2025 73
Graphs
Example :
Apply the Kruskal's algorithm on the graph given as follows.
Solution:
the weight of the edges given as:
Edge AE AD AC AB BC CD DE
Weight 5 10 7 1 3 4 2
05/23/2025 74
Graphs
Edge AB DE BC CD AE AC AD
Weight 1 2 3 4 5 7 10
05/23/2025 75
Graphs
05/23/2025 76
Graphs
The next step is to add AE, but we can't add that as it will cause a
cycle.
The next edge to be added is AC, but it can't be added as it will
cause a cycle.
The next edge to be added is AD, but it can't be added as it
will contain a cycle.
Hence, the final MST is the one which is shown in
the step 4. the cost of MST = 1 + 2 + 3 + 4 = 10.
05/23/2025 77
05/23/2025 78
Shortest Path Problems
B 210 B
A A
450
60 190
C unweighted C weighted
graph graph
200 130
D D
E E
05/23/2025 79
Shortest Path Problems
• How can we find the shortest route between two points on a map?
• Model the problem as a graph problem:
– Road map is a weighted graph:
vertices = cities
edges = road segments between cities
edge weights = road distances
– Goal: find a shortest path between two vertices (cities)
05/23/2025 80
Variants of Shortest Paths
• Single-source shortest path
– G = (V, E) find a shortest path from a given source vertex s to
each vertex v V
• Single-destination shortest path
– Find a shortest path to a given destination vertex t from each
vertex v
– Reverse the direction of each edge single-source
• Single-pair shortest path
– Find a shortest path from u to v for given vertices u and v
– Solve the single-source problem
• All-pairs shortest-paths
– Find a shortest path from u to v for every pair of vertices u and
v
05/23/2025 81
Shortest Path Algorithm
Find the single source shortest path from the vertex A.
Priority queue A B C D E F
0∞ ∞ ∞ ∞∞
Solution set (S)= ϕ
Extract min(Queue) = A
S = S U {A}
= {A}
05/23/2025 82
Shortest Path Algorithm
Priority queue B C D E F
2 ∞ 8 ∞∞
Solution set (S)= {A}
Extract min(Queue) = B
S = S U {B}
= {A,B}
Priority queue C D E F
5 7 ∞∞
Solution set (S)= {A,B}
Extract min(Queue) = C
S = S U {C}
= {A,B,C}
05/23/2025 83
Shortest Path Algorithm
Priority queue D E F
6 12 11
Solution set (S)= {A,B,C}
Extract min(Queue) = D
S = S U {D}
= {A,B,C,D}
Priority queue E F
12 11
Solution set (S)= {A,B,C,D}
Extract min(Queue) = F
S = S U {F}
= {A,B,C,D,F}
05/23/2025 84
Shortest Path Algorithm
Priority queue E
12
Solution set (S)= {A,B,C,D,F}
Extract min(Queue) = E
S = S U {E}
= {A,B,C,D,F,E}
05/23/2025 85
Dijkstra’s Algorithm
t 1 x
Find the single source shortest path from the 10 9
vertex S. s 0
2 3 4 6
5 7
2
y z
05/23/2025 86
Dijkstra’s Algorithm
24
2 3
9
s
18
14
2 6
6
30 4 19
11
15 5
5
6
20 16
t
7 44
05/23/2025 87
05/23/2025 88
Applications of Dijkstra's Algorithm
05/23/2025 89
Applications of Dijkstra's Algorithm
05/23/2025 90
Applications of Dijkstra's Algorithm
05/23/2025 91
Floyd Warshall Algorithm-
•It computes the shortest path between every pair of vertices of the
given graph.
05/23/2025 92
Floyd Warshall Algorithm-
Advantages-
Floyd Warshall Algorithm has the following main advantages-
05/23/2025 93
Floyd Warshall Algorithm-
05/23/2025 94
Floyd Warshall Algorithm-
if M[ i ][ j ] > M[ i ][ k ] + M[ k ][ j ]
M[ i ][ j ] = M[ i ][ k ] + M[ k ][ j ]
05/23/2025 95
Floyd Warshall Algorithm-
Time Complexity-
•Floyd Warshall Algorithm consists of three loops over all the nodes.
05/23/2025 96
Floyd Warshall Algorithm-
05/23/2025 97
Floyd Warshall Problem
Problem-
Using Floyd Warshall Algorithm, find the shortest path distance between
every pair of vertices.
05/23/2025 98
Floyd Warshall Algorithm-
Solution-
Step-01:
•Remove all the self loops and parallel edges (keeping the lowest weight
edge) from the graph.
•In the given graph, there are neither self edges nor parallel edges.
Step-02:
05/23/2025 99
Floyd Warshall Algorithm-
Step-02: (Continue)
05/23/2025 100
Floyd Warshall Algorithm-
Step-03:
05/23/2025 101
Floyd Warshall Algorithm-
Step-03:
05/23/2025 102
Floyd Warshall Algorithm-
05/23/2025 103
Floyd Warshall Algorithm-
05/23/2025 104
Floyd Warshall Algorithm-
05/23/2025 105
Floyd Warshall Algorithm-
Remember-
•In the above problem, there are 4 vertices in the given graph.
•So, there will be total 4 matrices of order 4 x 4 in the solution
excluding the initial distance matrix.
•Diagonal elements of each matrix will always be 0.
05/23/2025 106
Transitive Closure of a Graph
Given a directed graph, find out if a vertex j is reachable from another vertex i for all vertex
pairs (i, j) in the given graph. Here reachable mean that there is a path from vertex i to j.
1111
1111
1111
0001
05/23/2025 107
Faculty Video Links, Youtube & NPTEL
Video Links and Online Courses Details
https://www.youtube.com/watch?v=eujc7_0FhCI
https://www.youtube.com/watch?v=gXgEDyodOJU
05/23/2025 108
Daily Quiz
05/23/2025 109
Weekly Assignment
Q.1 Draw the complete undirected graphs on one, two, three, four and five
vertices. Prove that the number of edges in an n vertex complete graph is
n ( n -1)/2.
Q.2 What are the different ways of representing a graph? Represent the
following
graph using those ways.
Q.3 What are the different ways of representing a graph? Represent the
following
graph using those ways.
05/23/2025 110
Weekly Assignment
Q.4 Write an algorithm which does depth first search through an un-
weighted
connected graph. In an un-weighted graph, would breadth first search
or depth
first search or neither find a shortest path tree from some node? Why?
Q.5 Which are the two standard ways of traversing a graph? Explain
them with an example of each.
05/23/2025 111
MCQ s
1. Which of the following algorithms can be used to most efficiently
determine the presence of a cycle in a given graph ?
a. Depth First Search
b. Breadth First Search
c. Prim's Minimum Spanning Tree Algorithm
d. Kruskal' Minimum Spanning Tree Algorithm
2. Traversal of a graph is different from tree because
a. There can be a loop in graph so we must maintain a visited
flag for every vertex
b. DFS of a graph uses stack, but in-order traversal of a tree is
recursive
c. BFS of a graph uses queue, but a time efficient BFS of a tree
is recursive.
d. All of above
05/23/2025 112
MCQ s
3. What are the appropriate data structures for following algorithms?
a. Breadth First Search
b. Depth First Search
c. Prim's Minimum Spanning Tree
d. Kruskal' Minimum Spanning Tree
4. The Breadth First Search algorithm has been implemented using the
queue data structure. One possible order of visiting the nodes of the
following graph is
05/23/2025 113
MCQ s
5. Consider the following graph,
Among the following sequences:
(I) a b e g h f
(II) a b f e h g
(III) a b f h g e
(IV) a f g h b e
Which are depth first traversals of the above graph?
a) Only BFS
b) Only DFS
c) Both BFS and DFS
d) Neither BFS nor DFS
05/23/2025 114
MCQ s
7. Which of the following is the most commonly used data structure for
implementing Dijkstra's Algorithm?
a. Max priority queue
b. Stack
c. Circular queue
d. Min priority queue
05/23/2025 115
MCQ s
05/23/2025 117
Expected Questions for University Exam
7. Define Floyd Warshall Algorithm for all pair shortest path and apply the
same on following graph:
05/23/2025 118
Old Question Papers
https://drive.google.com/open?id=15fAkaWQ5c
cZRZPzwlP4PBh1LxcPp4VAd
05/23/2025 119
Summary
Graphs can be used to solve some very complex problems, such as least
cost routing, mapping, program analysis, and so on.
05/23/2025 120
References
05/23/2025 121
Thank you
05/23/2025 122