SlideShare a Scribd company logo
Unit – VIII
Graph
Prepared By:
Dabbal Singh Mahara
1
2
Contents
a) Introduction
b) b) Representation of Graph
• Array
• Linked list
c) Traversals
• Depth first Search
• Breadth first search
d) Minimum spanning tree
• Kruskal's algorithm
Introduction
• Graphs are a formalism for representing
relationships between objects.
– a graph G is represented as G = (V, E),
where,
• V is a set of vertices
• E is a set of edges
Balkhu
kalanki
Bafal
V = {Balkhu, Kalanki, Bafal}
E = {(Bafal, Kalanki),
(Balkhu, Kalanki),
(Kalanki, Balkhu)}
3
Graph
• A graph G = (V,E) is composed of:
V: set of vertices
E: set of edges connecting the vertices in V
• An edge e = (u,v) is a pair of vertices
• Example:
a b
c
d e
V= {a,b,c,d,e}
E= {(a,b),(a,c),(a,d),
(b,e),(c,d),(c,e),
(d,e)}
4
5
Graph ADT
Graph Terminology:
• Node
Each element of a graph is called node of a graph
• Edge
Line joining two nodes is called an edge.
It is denoted by e=[u,v] where u and v are adjacent vertices.
6
 Loop
An edge of the form (u, u) is said to be a loop. Here in figure [v2,v2]
 Multiedge
If x was y’s friend several times over, we can model this relationship
using multiedges. In figure e1 and e3.
Loop
e1
V1
V2e2V2
node
edge
e3
Adjacent and Incident
• If (v0, v1) is an edge in an undirected graph,
• v0 and v1 are adjacent
• The edge (v0, v1) is incident on vertices v0 and v1
• If <v0, v1> is an edge in a directed graph
• v0 is adjacent to v1, and v1 is adjacent from v0
• The edge <v0, v1> is incident on v0 and v1
7
• The degree of a vertex is the number of edges incident to that
vertex
• A node with degree 0 is known as isolated node.
• A node with degree 1 is known as pendant node.
• For directed graph,
• the in-degree of a vertex v is the number of edges
that have v as the head
• the out-degree of a vertex v is the number of edges
that have v as the tail
• if di is the degree of a vertex i in a graph G with n vertices and e
edges, the number of edges is
Degree of a Vertex
8
0
1 2
3 4 5 6
G1 G2
3
2
3 3
1 1 1 1
directed graph
in-degree
out-degree
0
1
2
G3
in:1, out: 1
in: 1, out: 2
in: 1, out: 0
0
1 2
3
33
3
Examples
9
10
Path
• Path: A sequence of
vertices v1,v2,. . .vk such
that consecutive vertices vi
and vi+1 are adjacent.
• Example: {1, 4, 3, 5, 2}
1
4 5
3
2
a b
c
d e
a b
c
d e
a b e d c b e d c
• Length of a path: Number of edges on the path
• simple path: The path with no repeated vertices
• cycle: simple path, except that the last vertex is the same as the
first vertex
a b
c
d e
b e c
11
• subgraph: subset of vertices and edges forming a graph
• connected component: maximal connected subgraph. E.g., the graph below has
3 connected components.
connected not connected
•connected graph: any two vertices are connected by some path
12
Types
• Graphs are generally classified as,
• Directed graph
• Undirected graph
13
Un Directed graph
• A graphs G is called directed graph if each edge has no
direction.
14
15
• Simple Graph
A graph in which there is no loop and no multiple edges between two nodes.
• Multigraph
The graph which has multiple edges between any two nodes but no loops is called
multigraph.
Types of Graph
Directed graph
• A graphs G is called directed graph if each edge has a
direction.
16
• Pseudograph
A graph which has loop is called pseudograph.
• Complete graph
A graph G is called complete, if every nodes are adjacent
with other node
• Weighted graph
If each edge of graph is assigned a number or value, then it
is weighted graph. The number is weight.
17
18
Why Use Graphs?
• Graphs serve as models of a wide range of objects:
– A roadmap
– A map of airline routes
– A layout of an adventure game world
– A schematic of the computers and connections that make up the
Internet
– The links between pages on the Web
– The relationship between students and courses
– A diagram of the flow capacities in a communications or transportation
network
19
Representations of Graphs
• To represent graphs, you need a convenient way to store the
vertices and the edges that connect them
• Two commonly used representations of graphs:
– The adjacency matrix
– The adjacency list
20
Adjacency Matrix
• If a graph has N vertices labeled 0, 1, . . . , N – 1:
– The adjacency matrix for the graph is a grid G with N rows and N columns
– Cell G[i][ j] = 1 if there’s an edge from vertex i to j
• Otherwise, there is no edge and that cell contains 0
• These are the simplest ways for representing graphs.
• Space requirement: O(n2)
• Adding and deleting edge: O(1)
• Testing an edge : O(1)
21
Adjacency Matrix (continued)
• If the graph is undirected, then four more cells are occupied by 1:
• If the vertices are labeled, then the labels can be stored in a
separate one-dimensional array
22
Adjacency List
• If a graph has N vertices labeled 0, 1, . . . , N – 1,
– The adjacency list for the graph is an array of N linked lists
– The ith linked list contains a node for vertex j if and only if there is an
edge from vertex i to vertex j
– It is suitable for sparse graphs i.e. graphs with the few edges
– Space required: O(V+E)
– Time for
• Testing edge to u O(dge(u))
• Finding adjacent vertices: O(deg(u))
• Insertion and deletion : O(deg(u))
23
Adjacency List (continued)
24
Exercise:
Construct Adjacency List and Adjacency Matrix
i. ii.
1
5 4
3
2
25
 One of the most fundamental graph problems is to traverse every edge and
vertex in a graph. Applications include:
 Printing out the contents of each edge and vertex.
 Counting the number of edges.
 Identifying connected components of a graph.
 Graph traversal algorithms visit the vertices of a graph, according to some
Strategy.
 Given G=(V,E) and vertex v, find all wV, such that w connects v
 Depth First Search (DFS): preorder traversal
 Breadth First Search (BFS): level order traversal
Graph Traversals
26
DFS
The basic idea is:
• Start from the given vertex and go as far as possible
i.e. search continues until the end of the path if not visited
already,
• Otherwise, backtrack and try another path.
• DFS uses stack to process the nodes.
Algorithm:
DFS(G,S)
{
T = { S };
Traverse(S);
}
Traverse(v)
{
for each w adjacent to v not yet in T
{
T = T U {w}; // add edge {v,w} in T
Traverse(w);
}
}
27
2
1
6
7
5
3
4
Example: DFS Tracing
Starting Vertex : 1
2
1
6
7
5
3
4
Visited Nodes: T = { }
2
1
6
7
5
3
4
T = { 1 }
T = { 1, 2 }
28
2
1
6
7
5
3
4
T = { 1, 2, 3 }
backtrack from 3
Visit next branch from 2
2
1
6
7
5
3
4
T = { 1, 2, 3, 4 }
2
1
6
7
5
3
4
T = { 1, 2, 3, 4, 7 }
29
T = { 1, 2, 3, 4, 7, 5 }
2
1
6
7
5
3
4
2
1
6
7
5
3
4
T = { 1, 2, 3, 4, 7, 5, 6 }
2
1
6
7
5
3
4
Final DFS tree.
30
Analysis:
• The complexity of the algorithm is greatly affected by
Traverse function we can write its running time in terms of
the relation,
T(n) = T(n-1) + O(n),
• At each recursive call a vertex is decreased and for each
vertex atmost n adjacent vertices can be there. So, O(n).
• Solving this we get, T(n) = O(n2). This is the case when
we use adjacency matrix.
• If adjacency list is used, T(n) = O(n + e), where e is
number of edges.
31
BFS
• This is one of the simplest methods of graph searching.
• Choose some vertex as a root or starting vertex.
• Add it to the queue. Mark it as visited and dequeue it from the queue.
• Add all the adjacent vertices of this node into queue.
• Remove one node from front and mark it as visited. Repeat this process until all the
nodes are visited.
BFS (G, S)
{
Initialize Queue, q = { }
mark S as visited;
enqueue(q, S);
while( q != Empty)
{
v = dequeue(q);
for each w adjacent to v
{
if w is not marked as visited
{
enqueue(q, w)
mark w as visited.
}
}
}
}
32
Analysis:
• This algorithms puts all the vertices in the queue and they
are accessed one by one.
• for each accessed vertex from the queue their adjacent
vertices are looked up for O(n) time (for worst case).
• Total time complexity , T(n) = O(n2) , in case of adjacency
matrix.
• T(n) = O(n +e), in case of adjacency list.
33
2
1
6
7
5
3
4
Example: BFS Algorithm Tracing
Solution:
2
1
6
7
5
3
4
 Starting vertex : 1
Visited: { 1 }
2
1
6
7
5
3
4
Visited: { 1,2, 3, 7, 5, 6 }
1
2 3 7 5 6Queue :
Queue :
34
2
1
6
7
5
3
4
 Dequeue front of queue. Add its all unvisited
adjacent nodes to the queue.
Queue 3 7 5 6 4
Visited : { 1, 2, 3, 7, 5, 6, 4 }
2
1
6
7
5
3
4
Queue
Visited : { 1, 2, 3, 7, 5, 6, 4 }
35
2
1
6
7
5
3
4
Final BFS Tree.
36
Spanning Tree
A spanning tree of a connected undirected graph G is a sub graph
T of without cycle G that connects all the vertices of G.
i.e. A spanning tree for a connected graph G is a tree containing
all the vertices of G
• A minimum spanning tree in a connected weighted graph is a
spanning tree that has the smallest possible sum of weights of its
edges.
• It represents the cheapest way of connecting all the nodes in G.
• It is not necessarily unique.
• Any time you want to visit all vertices in a graph at minimum cost
(e.g., wire routing on printed circuit boards, sewer pipe layout,
road planning…)
Minimum Spanning Trees
37
• Two algorithms that are used to construct the minimum
spanning tree from the given connected weighted graph of
given graph are:
 Kruskal's Algorithm
 Prim's Algorithm
MST Generating Algorithms
Kruskal's Algorithm
We have V as a set of n vertices and E as set of edges of graph G. The idea behind
this algorithm is:
• The nodes of the graph are considered as n distinct partial trees with one
node each.
• At each step of the algorithm, two partial trees are connected into single
partial tree by an edge of the graph.
• While connecting two nodes of partial trees, minimum weighted arc is
selected.
• After n-1 steps MST is obtained.
38
39
40
Algorithm:
Kruskal_MSt( G )
{
T = { V } // forest of n nodes
S = Set of edges sorted in non-decreasing order of weight
while( |T| < n-1 AND S != Empty)
{
select edge (u,v) from S in order
S = S – (u,v)
if (u,v) does not form cycle in T
T = T U {(u,v)}
}
}
Complexity Analysis
To form the forest of n trees takes O(n) time, the creation of S takes O(E.log E)
time and while loop executes O(n) time and the steps inside loop take almost
linear time.
So, total time – O(n) + O (E logE) +O(n log n)
41
2
1
6
7
5
3
4
18
7
10
15
8
9
11
13
7
Exercise: Trace Kruskals algorithm.
42

More Related Content

PPTX
K-Nearest Neighbor(KNN)
PPT
Graph traversal-BFS & DFS
PPTX
DFS and BFS
PPT
Data cleaning-outlier-detection
PDF
Graph Theory: Cut-Set and Cut-Vertices
PPTX
Functional dependency
PPTX
Prims and kruskal algorithms
PPTX
Data Mining: Classification and analysis
K-Nearest Neighbor(KNN)
Graph traversal-BFS & DFS
DFS and BFS
Data cleaning-outlier-detection
Graph Theory: Cut-Set and Cut-Vertices
Functional dependency
Prims and kruskal algorithms
Data Mining: Classification and analysis

What's hot (20)

PPTX
Tree pruning
PPTX
Introduction to Graph Theory
PDF
Algorithms explained
PPT
Graphs In Data Structure
PDF
Introduction to Graph Theory
PPTX
Dijkstra’s algorithm
PDF
K means Clustering
PPT
Bfs and dfs in data structure
PPT
Prim Algorithm and kruskal algorithm
PPT
01 knapsack using backtracking
PPTX
Bfs and Dfs
PPTX
Ppt of graph theory
PPT
PDF
Decision tree lecture 3
PPTX
Apriori algorithm
PPTX
Hyperparameter Tuning
PDF
CLUSTERING IN DATA MINING.pdf
PPTX
Kruskal’s Algorithm
PPT
Regular Grammar
PPT
recursive transition_networks
Tree pruning
Introduction to Graph Theory
Algorithms explained
Graphs In Data Structure
Introduction to Graph Theory
Dijkstra’s algorithm
K means Clustering
Bfs and dfs in data structure
Prim Algorithm and kruskal algorithm
01 knapsack using backtracking
Bfs and Dfs
Ppt of graph theory
Decision tree lecture 3
Apriori algorithm
Hyperparameter Tuning
CLUSTERING IN DATA MINING.pdf
Kruskal’s Algorithm
Regular Grammar
recursive transition_networks
Ad

Similar to Unit ix graph (20)

PPTX
Unit 9 graph
PPTX
Graph data structures for ppt for understanding.pptx
PPTX
Lecture 2.3.1 Graph.pptx
PDF
Graphhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh.pdf
PPT
Graphs.pptGraphs.pptGraphs.pptGraphs.pptGraphs.pptGraphs.ppt
PPTX
Algorithms and data Chapter 3 V Graph.pptx
PPT
Unit VI - Graphs.ppt
PPTX
logic.pptx
PPTX
DATA STRUCTURES.pptx
PPTX
Unit 4 dsuc
PPT
cs201-tree-graph as a data structure.ppt
PPT
Data Structures-Non Linear DataStructures-Graphs
PPT
Graphs
PPTX
Data Structures and Agorithm: DS 21 Graph Theory.pptx
PPTX
Data Structure and algorithms - Graph1.pptx
PDF
Daa chpater 12
PPTX
NON-LINEAR DATA STRUCTURE-Graphs.pptx
PPTX
UNIT III.pptx
Unit 9 graph
Graph data structures for ppt for understanding.pptx
Lecture 2.3.1 Graph.pptx
Graphhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh.pdf
Graphs.pptGraphs.pptGraphs.pptGraphs.pptGraphs.pptGraphs.ppt
Algorithms and data Chapter 3 V Graph.pptx
Unit VI - Graphs.ppt
logic.pptx
DATA STRUCTURES.pptx
Unit 4 dsuc
cs201-tree-graph as a data structure.ppt
Data Structures-Non Linear DataStructures-Graphs
Graphs
Data Structures and Agorithm: DS 21 Graph Theory.pptx
Data Structure and algorithms - Graph1.pptx
Daa chpater 12
NON-LINEAR DATA STRUCTURE-Graphs.pptx
UNIT III.pptx
Ad

Recently uploaded (20)

PDF
Biophysics 2.pdffffffffffffffffffffffffff
PPTX
ANEMIA WITH LEUKOPENIA MDS 07_25.pptx htggtftgt fredrctvg
PDF
AlphaEarth Foundations and the Satellite Embedding dataset
PDF
bbec55_b34400a7914c42429908233dbd381773.pdf
PDF
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
PDF
The scientific heritage No 166 (166) (2025)
PPTX
SCIENCE10 Q1 5 WK8 Evidence Supporting Plate Movement.pptx
PDF
MIRIDeepImagingSurvey(MIDIS)oftheHubbleUltraDeepField
PPTX
Protein & Amino Acid Structures Levels of protein structure (primary, seconda...
PPTX
DRUG THERAPY FOR SHOCK gjjjgfhhhhh.pptx.
PPTX
2. Earth - The Living Planet Module 2ELS
PPTX
Microbiology with diagram medical studies .pptx
PPTX
TOTAL hIP ARTHROPLASTY Presentation.pptx
PPTX
ECG_Course_Presentation د.محمد صقران ppt
PPTX
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
PPTX
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
PDF
Unveiling a 36 billion solar mass black hole at the centre of the Cosmic Hors...
PPTX
Comparative Structure of Integument in Vertebrates.pptx
PDF
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
PPTX
neck nodes and dissection types and lymph nodes levels
Biophysics 2.pdffffffffffffffffffffffffff
ANEMIA WITH LEUKOPENIA MDS 07_25.pptx htggtftgt fredrctvg
AlphaEarth Foundations and the Satellite Embedding dataset
bbec55_b34400a7914c42429908233dbd381773.pdf
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
The scientific heritage No 166 (166) (2025)
SCIENCE10 Q1 5 WK8 Evidence Supporting Plate Movement.pptx
MIRIDeepImagingSurvey(MIDIS)oftheHubbleUltraDeepField
Protein & Amino Acid Structures Levels of protein structure (primary, seconda...
DRUG THERAPY FOR SHOCK gjjjgfhhhhh.pptx.
2. Earth - The Living Planet Module 2ELS
Microbiology with diagram medical studies .pptx
TOTAL hIP ARTHROPLASTY Presentation.pptx
ECG_Course_Presentation د.محمد صقران ppt
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
Unveiling a 36 billion solar mass black hole at the centre of the Cosmic Hors...
Comparative Structure of Integument in Vertebrates.pptx
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
neck nodes and dissection types and lymph nodes levels

Unit ix graph

  • 1. Unit – VIII Graph Prepared By: Dabbal Singh Mahara 1
  • 2. 2 Contents a) Introduction b) b) Representation of Graph • Array • Linked list c) Traversals • Depth first Search • Breadth first search d) Minimum spanning tree • Kruskal's algorithm
  • 3. Introduction • Graphs are a formalism for representing relationships between objects. – a graph G is represented as G = (V, E), where, • V is a set of vertices • E is a set of edges Balkhu kalanki Bafal V = {Balkhu, Kalanki, Bafal} E = {(Bafal, Kalanki), (Balkhu, Kalanki), (Kalanki, Balkhu)} 3
  • 4. Graph • A graph G = (V,E) is composed of: V: set of vertices E: set of edges connecting the vertices in V • An edge e = (u,v) is a pair of vertices • Example: a b c d e V= {a,b,c,d,e} E= {(a,b),(a,c),(a,d), (b,e),(c,d),(c,e), (d,e)} 4
  • 6. Graph Terminology: • Node Each element of a graph is called node of a graph • Edge Line joining two nodes is called an edge. It is denoted by e=[u,v] where u and v are adjacent vertices. 6  Loop An edge of the form (u, u) is said to be a loop. Here in figure [v2,v2]  Multiedge If x was y’s friend several times over, we can model this relationship using multiedges. In figure e1 and e3. Loop e1 V1 V2e2V2 node edge e3
  • 7. Adjacent and Incident • If (v0, v1) is an edge in an undirected graph, • v0 and v1 are adjacent • The edge (v0, v1) is incident on vertices v0 and v1 • If <v0, v1> is an edge in a directed graph • v0 is adjacent to v1, and v1 is adjacent from v0 • The edge <v0, v1> is incident on v0 and v1 7
  • 8. • The degree of a vertex is the number of edges incident to that vertex • A node with degree 0 is known as isolated node. • A node with degree 1 is known as pendant node. • For directed graph, • the in-degree of a vertex v is the number of edges that have v as the head • the out-degree of a vertex v is the number of edges that have v as the tail • if di is the degree of a vertex i in a graph G with n vertices and e edges, the number of edges is Degree of a Vertex 8
  • 9. 0 1 2 3 4 5 6 G1 G2 3 2 3 3 1 1 1 1 directed graph in-degree out-degree 0 1 2 G3 in:1, out: 1 in: 1, out: 2 in: 1, out: 0 0 1 2 3 33 3 Examples 9
  • 10. 10 Path • Path: A sequence of vertices v1,v2,. . .vk such that consecutive vertices vi and vi+1 are adjacent. • Example: {1, 4, 3, 5, 2} 1 4 5 3 2 a b c d e a b c d e a b e d c b e d c • Length of a path: Number of edges on the path
  • 11. • simple path: The path with no repeated vertices • cycle: simple path, except that the last vertex is the same as the first vertex a b c d e b e c 11
  • 12. • subgraph: subset of vertices and edges forming a graph • connected component: maximal connected subgraph. E.g., the graph below has 3 connected components. connected not connected •connected graph: any two vertices are connected by some path 12
  • 13. Types • Graphs are generally classified as, • Directed graph • Undirected graph 13
  • 14. Un Directed graph • A graphs G is called directed graph if each edge has no direction. 14
  • 15. 15 • Simple Graph A graph in which there is no loop and no multiple edges between two nodes. • Multigraph The graph which has multiple edges between any two nodes but no loops is called multigraph. Types of Graph
  • 16. Directed graph • A graphs G is called directed graph if each edge has a direction. 16 • Pseudograph A graph which has loop is called pseudograph.
  • 17. • Complete graph A graph G is called complete, if every nodes are adjacent with other node • Weighted graph If each edge of graph is assigned a number or value, then it is weighted graph. The number is weight. 17
  • 18. 18 Why Use Graphs? • Graphs serve as models of a wide range of objects: – A roadmap – A map of airline routes – A layout of an adventure game world – A schematic of the computers and connections that make up the Internet – The links between pages on the Web – The relationship between students and courses – A diagram of the flow capacities in a communications or transportation network
  • 19. 19 Representations of Graphs • To represent graphs, you need a convenient way to store the vertices and the edges that connect them • Two commonly used representations of graphs: – The adjacency matrix – The adjacency list
  • 20. 20 Adjacency Matrix • If a graph has N vertices labeled 0, 1, . . . , N – 1: – The adjacency matrix for the graph is a grid G with N rows and N columns – Cell G[i][ j] = 1 if there’s an edge from vertex i to j • Otherwise, there is no edge and that cell contains 0 • These are the simplest ways for representing graphs. • Space requirement: O(n2) • Adding and deleting edge: O(1) • Testing an edge : O(1)
  • 21. 21 Adjacency Matrix (continued) • If the graph is undirected, then four more cells are occupied by 1: • If the vertices are labeled, then the labels can be stored in a separate one-dimensional array
  • 22. 22 Adjacency List • If a graph has N vertices labeled 0, 1, . . . , N – 1, – The adjacency list for the graph is an array of N linked lists – The ith linked list contains a node for vertex j if and only if there is an edge from vertex i to vertex j – It is suitable for sparse graphs i.e. graphs with the few edges – Space required: O(V+E) – Time for • Testing edge to u O(dge(u)) • Finding adjacent vertices: O(deg(u)) • Insertion and deletion : O(deg(u))
  • 24. 24 Exercise: Construct Adjacency List and Adjacency Matrix i. ii. 1 5 4 3 2
  • 25. 25  One of the most fundamental graph problems is to traverse every edge and vertex in a graph. Applications include:  Printing out the contents of each edge and vertex.  Counting the number of edges.  Identifying connected components of a graph.  Graph traversal algorithms visit the vertices of a graph, according to some Strategy.  Given G=(V,E) and vertex v, find all wV, such that w connects v  Depth First Search (DFS): preorder traversal  Breadth First Search (BFS): level order traversal Graph Traversals
  • 26. 26 DFS The basic idea is: • Start from the given vertex and go as far as possible i.e. search continues until the end of the path if not visited already, • Otherwise, backtrack and try another path. • DFS uses stack to process the nodes. Algorithm: DFS(G,S) { T = { S }; Traverse(S); } Traverse(v) { for each w adjacent to v not yet in T { T = T U {w}; // add edge {v,w} in T Traverse(w); } }
  • 27. 27 2 1 6 7 5 3 4 Example: DFS Tracing Starting Vertex : 1 2 1 6 7 5 3 4 Visited Nodes: T = { } 2 1 6 7 5 3 4 T = { 1 } T = { 1, 2 }
  • 28. 28 2 1 6 7 5 3 4 T = { 1, 2, 3 } backtrack from 3 Visit next branch from 2 2 1 6 7 5 3 4 T = { 1, 2, 3, 4 } 2 1 6 7 5 3 4 T = { 1, 2, 3, 4, 7 }
  • 29. 29 T = { 1, 2, 3, 4, 7, 5 } 2 1 6 7 5 3 4 2 1 6 7 5 3 4 T = { 1, 2, 3, 4, 7, 5, 6 } 2 1 6 7 5 3 4 Final DFS tree.
  • 30. 30 Analysis: • The complexity of the algorithm is greatly affected by Traverse function we can write its running time in terms of the relation, T(n) = T(n-1) + O(n), • At each recursive call a vertex is decreased and for each vertex atmost n adjacent vertices can be there. So, O(n). • Solving this we get, T(n) = O(n2). This is the case when we use adjacency matrix. • If adjacency list is used, T(n) = O(n + e), where e is number of edges.
  • 31. 31 BFS • This is one of the simplest methods of graph searching. • Choose some vertex as a root or starting vertex. • Add it to the queue. Mark it as visited and dequeue it from the queue. • Add all the adjacent vertices of this node into queue. • Remove one node from front and mark it as visited. Repeat this process until all the nodes are visited. BFS (G, S) { Initialize Queue, q = { } mark S as visited; enqueue(q, S); while( q != Empty) { v = dequeue(q); for each w adjacent to v { if w is not marked as visited { enqueue(q, w) mark w as visited. } } } }
  • 32. 32 Analysis: • This algorithms puts all the vertices in the queue and they are accessed one by one. • for each accessed vertex from the queue their adjacent vertices are looked up for O(n) time (for worst case). • Total time complexity , T(n) = O(n2) , in case of adjacency matrix. • T(n) = O(n +e), in case of adjacency list.
  • 33. 33 2 1 6 7 5 3 4 Example: BFS Algorithm Tracing Solution: 2 1 6 7 5 3 4  Starting vertex : 1 Visited: { 1 } 2 1 6 7 5 3 4 Visited: { 1,2, 3, 7, 5, 6 } 1 2 3 7 5 6Queue : Queue :
  • 34. 34 2 1 6 7 5 3 4  Dequeue front of queue. Add its all unvisited adjacent nodes to the queue. Queue 3 7 5 6 4 Visited : { 1, 2, 3, 7, 5, 6, 4 } 2 1 6 7 5 3 4 Queue Visited : { 1, 2, 3, 7, 5, 6, 4 }
  • 36. 36 Spanning Tree A spanning tree of a connected undirected graph G is a sub graph T of without cycle G that connects all the vertices of G. i.e. A spanning tree for a connected graph G is a tree containing all the vertices of G • A minimum spanning tree in a connected weighted graph is a spanning tree that has the smallest possible sum of weights of its edges. • It represents the cheapest way of connecting all the nodes in G. • It is not necessarily unique. • Any time you want to visit all vertices in a graph at minimum cost (e.g., wire routing on printed circuit boards, sewer pipe layout, road planning…) Minimum Spanning Trees
  • 37. 37 • Two algorithms that are used to construct the minimum spanning tree from the given connected weighted graph of given graph are:  Kruskal's Algorithm  Prim's Algorithm MST Generating Algorithms Kruskal's Algorithm We have V as a set of n vertices and E as set of edges of graph G. The idea behind this algorithm is: • The nodes of the graph are considered as n distinct partial trees with one node each. • At each step of the algorithm, two partial trees are connected into single partial tree by an edge of the graph. • While connecting two nodes of partial trees, minimum weighted arc is selected. • After n-1 steps MST is obtained.
  • 38. 38
  • 39. 39
  • 40. 40 Algorithm: Kruskal_MSt( G ) { T = { V } // forest of n nodes S = Set of edges sorted in non-decreasing order of weight while( |T| < n-1 AND S != Empty) { select edge (u,v) from S in order S = S – (u,v) if (u,v) does not form cycle in T T = T U {(u,v)} } } Complexity Analysis To form the forest of n trees takes O(n) time, the creation of S takes O(E.log E) time and while loop executes O(n) time and the steps inside loop take almost linear time. So, total time – O(n) + O (E logE) +O(n log n)
  • 42. 42