SlideShare a Scribd company logo
1 of 34
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
1
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Graphs as one of the most important non-linear data
structures
 The representation that models various kinds of
graphs
 Some useful graph algorithms
2
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 A graph G is a discrete structure consisting of nodes (vertices)
and the lines joining the nodes (edges)
 For finite graphs, V and E are finite. We can write a graph as G =
(V, E)
Graph traversals—
Visiting all the vertices and edges in a systematic fashion is
called as a graph traversal
3
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Graphs are classified as directed and undirected graphs
 In an undirected graph, an edge is a set of two vertices where
order does not make any relevance, whereas in a directed graph,
an edge is an ordered pair
4
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Graph
5
create() :Graph
insert vertex(Graph, v) :Graph
delete vertex(Graph, v) :Graph
insert edge(Graph, u, v) :Graph
delete edge(Graph, u, v) :Graph
is empty(Graph) :Boolean;
end graph
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Adjacency matrix (sequential representation)
 Adjacency list (linked representation)
 Adjacency Multilist
 Inverse Adjacency List
6
Representation of
Graphs
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 The graphs represented using a sequential
representation using matrices is called an adjacency
matrix
7
Adjacency Matrix
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
8
Adjacency Matrix
representation
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 In an adjacency list, the n rows of the adjacency list are
represented as n-linked lists, one list per vertex of the graph
 We can represent G by an array Head, where Head[i] is a pointer
to the adjacency list of vertex i
 Each node of the list has at least two fields: vertex and link
 The vertex field contains the vertex–id, and link field stores the
pointer to the next node storing another vertex adjacent to i
9
Adjacency Lists
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
10
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
11
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
12
 Multiclass are lists where nodes may be
shared among several other lists
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 The node structure of such a list can be
represented as follows :
13
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
14
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Inverse adjacency lists is a set of lists that contain
one list for vertex
 Each list contains a node per vertex adjacent to the
vertex it represents
15
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
16
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 DFS starts at the vertex v of G as a start vertex and v is
marked as visited
 Then, each unvisited vertex adjacent to v is searched
using the DFS recursively
 Once all the vertices that can be reached from v have
been visited, the search of v is complete
 If some vertices remain unvisited, we select an
unvisited vertex as a new start vertex and then repeat
the process until all the vertices of G are marked
visited
17
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
18
(a) Graph and its (b) adjacency list
representation
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 A tree is a connected graph with no cycles
 A spanning tree is a sub-graph of G that has all
vertices of G and is a tree
 A minimum spanning tree of a weighted graph G is
the spanning tree of G whose edges sum to minimum
weight
19
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 In BFS, all the unvisited vertices adjacent to i are
visited after visiting the start vertex i and marking it
visited
 Next, the unvisited vertices adjacent to these vertices
are visited and so on until the entire graph has been
traversed
20
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
21
Breadth-first search sequence for the
graph
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 A tree is a connected graph with no cycles
 A spanning tree is a sub-graph of G that has all
vertices of G and is a tree
 A minimum spanning tree of a weighted graph G is
the spanning tree of G whose edges sum to minimum
weight
22
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
23
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 An undirected graph is connected if there is at least one path
between every pair of vertices in the graph
 A connected component of a graph is a maximal connected sub-
graph, that is, every vertex in a connected component is
reachable from the vertices in the component
24
Connected Components
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Following fig shows the Sample graph with one connected
component
25
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Following fig shows the Graph with two connected
components
26
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Prim’s algorithm starts from one vertex and grows the rest of the
tree by adding one vertex at a time, by adding the associated
edges
 This algorithm builds a tree by iteratively adding edges until a
minimal spanning tree is obtained, that is, when all nodes are
added
 At each iteration, it adds to the current tree a vertex though
minimum weight edge that does not complete a cycle
27
Prim’s Algorithm
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
28
Minimum Spanning Tree
Minimum
Spanning Tree
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Another way to construct a minimum spanning tree for a graph
G is to start with a graph T = (V′, E′ = ø) consisting of the n
vertices of G and having no edges
 In Prim’s algorithm, we start with one connected component,
add a vertex to have one connected component and no cycles,
and end up with one connected component
 Here, we start with n connected components; at each step, the
number of connected components would reduce by one and end
up with one connected component
29
Kruskal’s Algorithm
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 The shortest path between two given vertices is the path having
minimum length
 This problem can be solved by one of the greedy algorithms, by
Edger W. Dijkstra, often called as Dijkstra’s algorithm
30
Shortest Path Algorithm
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
31
Shortest Path Algorithm
Directed weighted graph
Shortest Path
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Graphs are one of the most important non-linear data structures. A
graph is a representation of relation
 Vertices represent elements and edges represent relationships
 In other words, a graph is a collection of nodes (vertices) and arcs
joining pair of the nodes (edges)
 Graphs are classified as directed and undirected graphs. In an
undirected graph, an edge is a set of two vertices where order does
not make any relevance, whereas in a directed graph, an edge is an
ordered pair.
32
Summary
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Graphs are implemented using an array or a linked list representation
 An adjacency list is a data structure for representing a graph by keeping a list
of the neighbour vertices for each vertex
 An adjacency matrix is a data structure for representing a graph as a Boolean
matrix where 0 means no edge and 1 corresponds to an edge
 A minimum spanning tree is a tree, containing all the vertices of a
graph, where the total weight of the edges is minimum
 The two popularly used algorithms to compute minimum spanning tree are the
following: Prim’s and Kruskal’s algorithms
 Dijkstra’s algorithm is another common algorithm for graphs to find the
shortest path between two vertices of a graph
33
Summary
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
End
of
Chapter 8…!
34

More Related Content

What's hot

B+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletionB+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletionHAMID-50
 
UNIT II LINEAR DATA STRUCTURES – STACKS, QUEUES
UNIT II 	LINEAR DATA STRUCTURES – STACKS, QUEUES	UNIT II 	LINEAR DATA STRUCTURES – STACKS, QUEUES
UNIT II LINEAR DATA STRUCTURES – STACKS, QUEUES Kathirvel Ayyaswamy
 
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms IAlgorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms IMohamed Loey
 
Dinive conquer algorithm
Dinive conquer algorithmDinive conquer algorithm
Dinive conquer algorithmMohd Arif
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structureAbrish06
 
Sparse matrix and its representation data structure
Sparse matrix and its representation data structureSparse matrix and its representation data structure
Sparse matrix and its representation data structureVardhil Patel
 
Design and Analysis of Algorithms
Design and Analysis of AlgorithmsDesign and Analysis of Algorithms
Design and Analysis of AlgorithmsArvind Krishnaa
 
Adjacency And Incidence Matrix
Adjacency And Incidence MatrixAdjacency And Incidence Matrix
Adjacency And Incidence MatrixAbir Junayed
 
Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical AnalysisMunni28
 
Unit 1 polynomial manipulation
Unit 1   polynomial manipulationUnit 1   polynomial manipulation
Unit 1 polynomial manipulationLavanyaJ28
 
Elementary data organisation
Elementary data organisationElementary data organisation
Elementary data organisationMuzamil Hussain
 
Trees data structure
Trees data structureTrees data structure
Trees data structureSumit Gupta
 
linked list in data structure
linked list in data structure linked list in data structure
linked list in data structure shameen khan
 
Data Structures with C Linked List
Data Structures with C Linked ListData Structures with C Linked List
Data Structures with C Linked ListReazul Islam
 

What's hot (20)

B+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletionB+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletion
 
Analysis of algorithm
Analysis of algorithmAnalysis of algorithm
Analysis of algorithm
 
UNIT II LINEAR DATA STRUCTURES – STACKS, QUEUES
UNIT II 	LINEAR DATA STRUCTURES – STACKS, QUEUES	UNIT II 	LINEAR DATA STRUCTURES – STACKS, QUEUES
UNIT II LINEAR DATA STRUCTURES – STACKS, QUEUES
 
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms IAlgorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
 
Dinive conquer algorithm
Dinive conquer algorithmDinive conquer algorithm
Dinive conquer algorithm
 
Data Structures
Data StructuresData Structures
Data Structures
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structure
 
Graph data structure and algorithms
Graph data structure and algorithmsGraph data structure and algorithms
Graph data structure and algorithms
 
Sparse matrix and its representation data structure
Sparse matrix and its representation data structureSparse matrix and its representation data structure
Sparse matrix and its representation data structure
 
Design and Analysis of Algorithms
Design and Analysis of AlgorithmsDesign and Analysis of Algorithms
Design and Analysis of Algorithms
 
Graph coloring using backtracking
Graph coloring using backtrackingGraph coloring using backtracking
Graph coloring using backtracking
 
Adjacency And Incidence Matrix
Adjacency And Incidence MatrixAdjacency And Incidence Matrix
Adjacency And Incidence Matrix
 
Abstract Data Types
Abstract Data TypesAbstract Data Types
Abstract Data Types
 
DFS & BFS Graph
DFS & BFS GraphDFS & BFS Graph
DFS & BFS Graph
 
Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical Analysis
 
Unit 1 polynomial manipulation
Unit 1   polynomial manipulationUnit 1   polynomial manipulation
Unit 1 polynomial manipulation
 
Elementary data organisation
Elementary data organisationElementary data organisation
Elementary data organisation
 
Trees data structure
Trees data structureTrees data structure
Trees data structure
 
linked list in data structure
linked list in data structure linked list in data structure
linked list in data structure
 
Data Structures with C Linked List
Data Structures with C Linked ListData Structures with C Linked List
Data Structures with C Linked List
 

Viewers also liked

7. Tree - Data Structures using C++ by Varsha Patil
7. Tree - Data Structures using C++ by Varsha Patil7. Tree - Data Structures using C++ by Varsha Patil
7. Tree - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
5. Queue - Data Structures using C++ by Varsha Patil
5. Queue - Data Structures using C++ by Varsha Patil5. Queue - Data Structures using C++ by Varsha Patil
5. Queue - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
9. Searching & Sorting - Data Structures using C++ by Varsha Patil
9. Searching & Sorting - Data Structures using C++ by Varsha Patil9. Searching & Sorting - Data Structures using C++ by Varsha Patil
9. Searching & Sorting - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
3. Stack - Data Structures using C++ by Varsha Patil
3. Stack - Data Structures using C++ by Varsha Patil3. Stack - Data Structures using C++ by Varsha Patil
3. Stack - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
10. Search Tree - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patil10. Search Tree - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...widespreadpromotion
 
11. Hashing - Data Structures using C++ by Varsha Patil
11. Hashing - Data Structures using C++ by Varsha Patil11. Hashing - Data Structures using C++ by Varsha Patil
11. Hashing - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
1. Fundamental Concept - Data Structures using C++ by Varsha Patil
1. Fundamental Concept - Data Structures using C++ by Varsha Patil1. Fundamental Concept - Data Structures using C++ by Varsha Patil
1. Fundamental Concept - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++Ngeam Soly
 
Ds 111011055724-phpapp01
Ds 111011055724-phpapp01Ds 111011055724-phpapp01
Ds 111011055724-phpapp01Getachew Ganfur
 
Question answering in linked data
Question answering in linked dataQuestion answering in linked data
Question answering in linked dataReza Ramezani
 
C++ Constructor destructor
C++ Constructor destructorC++ Constructor destructor
C++ Constructor destructorDa Mystic Sadi
 
Mca ii dfs u-3 linklist,stack,queue
Mca ii dfs u-3 linklist,stack,queueMca ii dfs u-3 linklist,stack,queue
Mca ii dfs u-3 linklist,stack,queueRai University
 
The State of Twitter: STL 2011
The State of Twitter: STL 2011The State of Twitter: STL 2011
The State of Twitter: STL 2011Infuz
 
Classes and objects1
Classes and objects1Classes and objects1
Classes and objects1Vineeta Garg
 
Constructors and destructors
Constructors and destructorsConstructors and destructors
Constructors and destructorsVineeta Garg
 
Advanced data structures using c++ 3
Advanced data structures using c++ 3Advanced data structures using c++ 3
Advanced data structures using c++ 3Shaili Choudhary
 

Viewers also liked (20)

7. Tree - Data Structures using C++ by Varsha Patil
7. Tree - Data Structures using C++ by Varsha Patil7. Tree - Data Structures using C++ by Varsha Patil
7. Tree - Data Structures using C++ by Varsha Patil
 
5. Queue - Data Structures using C++ by Varsha Patil
5. Queue - Data Structures using C++ by Varsha Patil5. Queue - Data Structures using C++ by Varsha Patil
5. Queue - Data Structures using C++ by Varsha Patil
 
6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil
 
9. Searching & Sorting - Data Structures using C++ by Varsha Patil
9. Searching & Sorting - Data Structures using C++ by Varsha Patil9. Searching & Sorting - Data Structures using C++ by Varsha Patil
9. Searching & Sorting - Data Structures using C++ by Varsha Patil
 
3. Stack - Data Structures using C++ by Varsha Patil
3. Stack - Data Structures using C++ by Varsha Patil3. Stack - Data Structures using C++ by Varsha Patil
3. Stack - Data Structures using C++ by Varsha Patil
 
10. Search Tree - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patil10. Search Tree - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patil
 
4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil
 
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
 
11. Hashing - Data Structures using C++ by Varsha Patil
11. Hashing - Data Structures using C++ by Varsha Patil11. Hashing - Data Structures using C++ by Varsha Patil
11. Hashing - Data Structures using C++ by Varsha Patil
 
1. Fundamental Concept - Data Structures using C++ by Varsha Patil
1. Fundamental Concept - Data Structures using C++ by Varsha Patil1. Fundamental Concept - Data Structures using C++ by Varsha Patil
1. Fundamental Concept - Data Structures using C++ by Varsha Patil
 
មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++
 
Ds 111011055724-phpapp01
Ds 111011055724-phpapp01Ds 111011055724-phpapp01
Ds 111011055724-phpapp01
 
Stack & Queue
Stack & QueueStack & Queue
Stack & Queue
 
Question answering in linked data
Question answering in linked dataQuestion answering in linked data
Question answering in linked data
 
C++ Constructor destructor
C++ Constructor destructorC++ Constructor destructor
C++ Constructor destructor
 
Mca ii dfs u-3 linklist,stack,queue
Mca ii dfs u-3 linklist,stack,queueMca ii dfs u-3 linklist,stack,queue
Mca ii dfs u-3 linklist,stack,queue
 
The State of Twitter: STL 2011
The State of Twitter: STL 2011The State of Twitter: STL 2011
The State of Twitter: STL 2011
 
Classes and objects1
Classes and objects1Classes and objects1
Classes and objects1
 
Constructors and destructors
Constructors and destructorsConstructors and destructors
Constructors and destructors
 
Advanced data structures using c++ 3
Advanced data structures using c++ 3Advanced data structures using c++ 3
Advanced data structures using c++ 3
 

Similar to 8. Graph - Data Structures using C++ by Varsha Patil

NON-LINEAR DATA STRUCTURE-Graphs.pptx
NON-LINEAR DATA STRUCTURE-Graphs.pptxNON-LINEAR DATA STRUCTURE-Graphs.pptx
NON-LINEAR DATA STRUCTURE-Graphs.pptxRajitha Reddy Alugati
 
Slides Chapter10.1 10.2
Slides Chapter10.1 10.2Slides Chapter10.1 10.2
Slides Chapter10.1 10.2showslidedump
 
Graph terminology and algorithm and tree.pptx
Graph terminology and algorithm and tree.pptxGraph terminology and algorithm and tree.pptx
Graph terminology and algorithm and tree.pptxasimshahzad8611
 
Lecture 2.3.1 Graph.pptx
Lecture 2.3.1 Graph.pptxLecture 2.3.1 Graph.pptx
Lecture 2.3.1 Graph.pptxking779879
 
Lecture 5b graphs and hashing
Lecture 5b graphs and hashingLecture 5b graphs and hashing
Lecture 5b graphs and hashingVictor Palmar
 
Graph_data_structure_information_engineering.pptx
Graph_data_structure_information_engineering.pptxGraph_data_structure_information_engineering.pptx
Graph_data_structure_information_engineering.pptxsahilpawar2426
 
PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...
PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...
PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...SUTAPAMUKHERJEE12
 
Semantic Data Management in Graph Databases
Semantic Data Management in Graph DatabasesSemantic Data Management in Graph Databases
Semantic Data Management in Graph DatabasesMaribel Acosta Deibe
 
Chapter9 graph data structure
Chapter9  graph data structureChapter9  graph data structure
Chapter9 graph data structureMahmoud Alfarra
 
graph_theory_1-11.pdf___________________
graph_theory_1-11.pdf___________________graph_theory_1-11.pdf___________________
graph_theory_1-11.pdf___________________ssuser1989da
 
Graph Introduction.ppt
Graph Introduction.pptGraph Introduction.ppt
Graph Introduction.pptFaruk Hossen
 
Graph theory concepts complex networks presents-rouhollah nabati
Graph theory concepts   complex networks presents-rouhollah nabatiGraph theory concepts   complex networks presents-rouhollah nabati
Graph theory concepts complex networks presents-rouhollah nabatinabati
 

Similar to 8. Graph - Data Structures using C++ by Varsha Patil (20)

Spanningtreesppt
SpanningtreespptSpanningtreesppt
Spanningtreesppt
 
NON-LINEAR DATA STRUCTURE-Graphs.pptx
NON-LINEAR DATA STRUCTURE-Graphs.pptxNON-LINEAR DATA STRUCTURE-Graphs.pptx
NON-LINEAR DATA STRUCTURE-Graphs.pptx
 
Ch18
Ch18Ch18
Ch18
 
Slides Chapter10.1 10.2
Slides Chapter10.1 10.2Slides Chapter10.1 10.2
Slides Chapter10.1 10.2
 
Graph terminology and algorithm and tree.pptx
Graph terminology and algorithm and tree.pptxGraph terminology and algorithm and tree.pptx
Graph terminology and algorithm and tree.pptx
 
Lecture 2.3.1 Graph.pptx
Lecture 2.3.1 Graph.pptxLecture 2.3.1 Graph.pptx
Lecture 2.3.1 Graph.pptx
 
Lecture 5b graphs and hashing
Lecture 5b graphs and hashingLecture 5b graphs and hashing
Lecture 5b graphs and hashing
 
Graph_data_structure_information_engineering.pptx
Graph_data_structure_information_engineering.pptxGraph_data_structure_information_engineering.pptx
Graph_data_structure_information_engineering.pptx
 
Graph.pptx
Graph.pptxGraph.pptx
Graph.pptx
 
09_DS_MCA_Graphs.pdf
09_DS_MCA_Graphs.pdf09_DS_MCA_Graphs.pdf
09_DS_MCA_Graphs.pdf
 
PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...
PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...
PPT on Graph Theory ( Tree, Cotree, nodes, branches, incidence , tie set and ...
 
H0431038048
H0431038048H0431038048
H0431038048
 
Graphs.pptx
Graphs.pptxGraphs.pptx
Graphs.pptx
 
Semantic Data Management in Graph Databases
Semantic Data Management in Graph DatabasesSemantic Data Management in Graph Databases
Semantic Data Management in Graph Databases
 
Chapter9 graph data structure
Chapter9  graph data structureChapter9  graph data structure
Chapter9 graph data structure
 
graph_theory_1-11.pdf___________________
graph_theory_1-11.pdf___________________graph_theory_1-11.pdf___________________
graph_theory_1-11.pdf___________________
 
Basics of graph
Basics of graphBasics of graph
Basics of graph
 
Graph Introduction.ppt
Graph Introduction.pptGraph Introduction.ppt
Graph Introduction.ppt
 
Graph theory concepts complex networks presents-rouhollah nabati
Graph theory concepts   complex networks presents-rouhollah nabatiGraph theory concepts   complex networks presents-rouhollah nabati
Graph theory concepts complex networks presents-rouhollah nabati
 
Dijkstra
DijkstraDijkstra
Dijkstra
 

Recently uploaded

The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxThe-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxVivek487417
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...gajnagarg
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNKTimothy Spann
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样wsppdmt
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Klinik kandungan
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...nirzagarg
 
Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........EfruzAsilolu
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxchadhar227
 
Harnessing the Power of GenAI for BI and Reporting.pptx
Harnessing the Power of GenAI for BI and Reporting.pptxHarnessing the Power of GenAI for BI and Reporting.pptx
Harnessing the Power of GenAI for BI and Reporting.pptxParas Gupta
 
Ranking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRanking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRajesh Mondal
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.pptibrahimabdi22
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...gajnagarg
 
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATIONCapstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATIONLakpaYanziSherpa
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteedamy56318795
 
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...Elaine Werffeli
 

Recently uploaded (20)

The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxThe-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Sequential and reinforcement learning for demand side management by Margaux B...
Sequential and reinforcement learning for demand side management by Margaux B...Sequential and reinforcement learning for demand side management by Margaux B...
Sequential and reinforcement learning for demand side management by Margaux B...
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
 
Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
 
Harnessing the Power of GenAI for BI and Reporting.pptx
Harnessing the Power of GenAI for BI and Reporting.pptxHarnessing the Power of GenAI for BI and Reporting.pptx
Harnessing the Power of GenAI for BI and Reporting.pptx
 
Ranking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRanking and Scoring Exercises for Research
Ranking and Scoring Exercises for Research
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
 
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATIONCapstone in Interprofessional Informatic  // IMPACT OF COVID 19 ON EDUCATION
Capstone in Interprofessional Informatic // IMPACT OF COVID 19 ON EDUCATION
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
 

8. Graph - Data Structures using C++ by Varsha Patil

  • 1. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 1
  • 2. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Graphs as one of the most important non-linear data structures  The representation that models various kinds of graphs  Some useful graph algorithms 2
  • 3. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  A graph G is a discrete structure consisting of nodes (vertices) and the lines joining the nodes (edges)  For finite graphs, V and E are finite. We can write a graph as G = (V, E) Graph traversals— Visiting all the vertices and edges in a systematic fashion is called as a graph traversal 3
  • 4. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Graphs are classified as directed and undirected graphs  In an undirected graph, an edge is a set of two vertices where order does not make any relevance, whereas in a directed graph, an edge is an ordered pair 4
  • 5. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Graph 5 create() :Graph insert vertex(Graph, v) :Graph delete vertex(Graph, v) :Graph insert edge(Graph, u, v) :Graph delete edge(Graph, u, v) :Graph is empty(Graph) :Boolean; end graph
  • 6. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Adjacency matrix (sequential representation)  Adjacency list (linked representation)  Adjacency Multilist  Inverse Adjacency List 6 Representation of Graphs
  • 7. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  The graphs represented using a sequential representation using matrices is called an adjacency matrix 7 Adjacency Matrix
  • 8. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 8 Adjacency Matrix representation
  • 9. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  In an adjacency list, the n rows of the adjacency list are represented as n-linked lists, one list per vertex of the graph  We can represent G by an array Head, where Head[i] is a pointer to the adjacency list of vertex i  Each node of the list has at least two fields: vertex and link  The vertex field contains the vertex–id, and link field stores the pointer to the next node storing another vertex adjacent to i 9 Adjacency Lists
  • 10. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 10
  • 11. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 11
  • 12. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 12  Multiclass are lists where nodes may be shared among several other lists
  • 13. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  The node structure of such a list can be represented as follows : 13
  • 14. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 14
  • 15. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Inverse adjacency lists is a set of lists that contain one list for vertex  Each list contains a node per vertex adjacent to the vertex it represents 15
  • 16. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 16
  • 17. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  DFS starts at the vertex v of G as a start vertex and v is marked as visited  Then, each unvisited vertex adjacent to v is searched using the DFS recursively  Once all the vertices that can be reached from v have been visited, the search of v is complete  If some vertices remain unvisited, we select an unvisited vertex as a new start vertex and then repeat the process until all the vertices of G are marked visited 17
  • 18. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 18 (a) Graph and its (b) adjacency list representation
  • 19. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  A tree is a connected graph with no cycles  A spanning tree is a sub-graph of G that has all vertices of G and is a tree  A minimum spanning tree of a weighted graph G is the spanning tree of G whose edges sum to minimum weight 19
  • 20. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  In BFS, all the unvisited vertices adjacent to i are visited after visiting the start vertex i and marking it visited  Next, the unvisited vertices adjacent to these vertices are visited and so on until the entire graph has been traversed 20
  • 21. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 21 Breadth-first search sequence for the graph
  • 22. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  A tree is a connected graph with no cycles  A spanning tree is a sub-graph of G that has all vertices of G and is a tree  A minimum spanning tree of a weighted graph G is the spanning tree of G whose edges sum to minimum weight 22
  • 23. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 23
  • 24. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  An undirected graph is connected if there is at least one path between every pair of vertices in the graph  A connected component of a graph is a maximal connected sub- graph, that is, every vertex in a connected component is reachable from the vertices in the component 24 Connected Components
  • 25. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Following fig shows the Sample graph with one connected component 25
  • 26. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Following fig shows the Graph with two connected components 26
  • 27. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Prim’s algorithm starts from one vertex and grows the rest of the tree by adding one vertex at a time, by adding the associated edges  This algorithm builds a tree by iteratively adding edges until a minimal spanning tree is obtained, that is, when all nodes are added  At each iteration, it adds to the current tree a vertex though minimum weight edge that does not complete a cycle 27 Prim’s Algorithm
  • 28. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 28 Minimum Spanning Tree Minimum Spanning Tree
  • 29. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Another way to construct a minimum spanning tree for a graph G is to start with a graph T = (V′, E′ = ø) consisting of the n vertices of G and having no edges  In Prim’s algorithm, we start with one connected component, add a vertex to have one connected component and no cycles, and end up with one connected component  Here, we start with n connected components; at each step, the number of connected components would reduce by one and end up with one connected component 29 Kruskal’s Algorithm
  • 30. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  The shortest path between two given vertices is the path having minimum length  This problem can be solved by one of the greedy algorithms, by Edger W. Dijkstra, often called as Dijkstra’s algorithm 30 Shortest Path Algorithm
  • 31. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 31 Shortest Path Algorithm Directed weighted graph Shortest Path
  • 32. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Graphs are one of the most important non-linear data structures. A graph is a representation of relation  Vertices represent elements and edges represent relationships  In other words, a graph is a collection of nodes (vertices) and arcs joining pair of the nodes (edges)  Graphs are classified as directed and undirected graphs. In an undirected graph, an edge is a set of two vertices where order does not make any relevance, whereas in a directed graph, an edge is an ordered pair. 32 Summary
  • 33. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Graphs are implemented using an array or a linked list representation  An adjacency list is a data structure for representing a graph by keeping a list of the neighbour vertices for each vertex  An adjacency matrix is a data structure for representing a graph as a Boolean matrix where 0 means no edge and 1 corresponds to an edge  A minimum spanning tree is a tree, containing all the vertices of a graph, where the total weight of the edges is minimum  The two popularly used algorithms to compute minimum spanning tree are the following: Prim’s and Kruskal’s algorithms  Dijkstra’s algorithm is another common algorithm for graphs to find the shortest path between two vertices of a graph 33 Summary
  • 34. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil End of Chapter 8…! 34