SlideShare a Scribd company logo
1 of 33
Graph Operations And 
Representation
Sample Graph Problems 
• Path problems. 
• Connectedness problems. 
• Spanning tree problems.
Path Finding 
Path between 1 and 8. 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7 
4 
8 
6 
6 
7 
5 
2 
4 
4 5 
3 
Path length is 20.
Another Path Between 1 and 8 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7 
4 
8 
6 
6 
7 
5 
2 
4 
4 5 
3 
Path length is 28.
Example Of No Path 
2 
3 
No path between 2 and 9. 
8 
1 10 
4 
5 9 11 
6 
7
Connected Graph 
• Undirected graph. 
• There is a path between every pair of 
vertices.
Example Of Not Connected 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7
Connected Graph Example 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7
Connected Components 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7
Connected Component 
• A maximal subgraph that is connected. 
 Cannot add vertices and edges from original 
graph and retain connectedness. 
• A connected graph has exactly 1 
component.
Not A Component 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7
Communication Network 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7 
Each edge is a link that can be constructed 
(i.e., a feasible link).
Communication Network Problems 
• Is the network connected? 
 Can we communicate between every pair of 
cities? 
• Find the components. 
• Want to construct smallest number of 
feasible links so that resulting network is 
connected.
Cycles And Connectedness 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7 
Removal of an edge that is on a cycle does not affect 
connectedness.
Cycles And Connectedness 
2 
3 
8 
1 10 
4 
5 9 11 
6 
7 
Connected subgraph with all vertices and 
minimum number of edges has no cycles.
Tree 
• Connected graph that has no cycles. 
• n vertex connected graph with n-1 edges.
Spanning Tree 
• Subgraph that includes all vertices of the 
original graph. 
• Subgraph is a tree. 
 If original graph has n vertices, the spanning 
tree has n vertices and n-1 edges.
Minimum Cost Spanning Tree 
2 
3 
8 
4 
8 
1 10 
4 
6 
4 
4 5 
5 9 11 
6 
7 
6 
7 
5 
2 
• Tree cost is sum of edge weights/costs. 
3 
8 
2
A Spanning Tree 
2 
3 
Spanning tree cost = 51. 
8 
1 10 
4 
5 9 11 
6 
7 
4 
8 
6 
6 
7 
5 
2 
4 
4 5 
3 
8 
2
Minimum Cost Spanning Tree 
2 
3 
Spanning tree cost = 41. 
8 
1 10 
4 
5 9 11 
6 
7 
4 
8 
6 
6 
7 
5 
2 
4 
4 5 
3 
8 
2
A Wireless Broadcast Tree 
2 
3 
8 
4 
8 
1 10 
4 
6 
4 
4 5 
5 9 11 
6 
7 
6 
7 
5 
2 
Source = 1, weights = needed power. 
Cost = 4 + 8 + 5 + 6 + 7 + 8 + 3 = 41. 
3 
8 
2
Graph Representation 
• Adjacency Matrix 
• Adjacency Lists 
 Linked Adjacency Lists 
 Array Adjacency Lists
Adjacency Matrix 
• 0/1 n x n matrix, where n = # of vertices 
• A(i,j) = 1 iff (i,j) is an edge 
2 
3 
1 
4 
5 
1 2 3 4 5 
12345 
0 1 0 1 0 
1 0 0 0 1 
0 0 0 0 1 
1 0 0 0 1 
0 1 1 1 0
Adjacency Matrix Properties 
2 
3 
1 
4 
5 
1 2 3 4 5 
12345 0 1 0 1 0 
1 0 0 0 1 
0 0 0 0 1 
1 0 0 0 1 
0 1 1 1 0 
•Diagonal entries are zero. 
•Adjacency matrix of an undirected graph is 
symmetric. 
A(i,j) = A(j,i) for all i and j.
Adjacency Matrix (Digraph) 
2 
3 
1 
4 
5 
1 2 3 4 5 
12345 0 0 0 1 0 
1 0 0 0 1 
0 0 0 0 0 
0 0 0 0 1 
0 1 1 0 0 
•Diagonal entries are zero. 
•Adjacency matrix of a digraph need not be 
symmetric.
Adjacency Matrix 
• n2 bits of space 
• For an undirected graph, may store only 
lower or upper triangle (exclude diagonal). 
 (n-1)n/2 bits 
• O(n) time to find vertex degree and/or 
vertices adjacent to a given vertex.
Adjacency Lists 
• Adjacency list for vertex i is a linear list of 
vertices adjacent from vertex i. 
• An array of n adjacency lists. 
2 
3 
1 
4 
5 
aList[1] = (2,4) 
aList[2] = (1,5) 
aList[3] = (5) 
aList[4] = (5,1) 
aList[5] = (2,4,3)
Linked Adjacency Lists 
• Each adjacency list is a chain. 
2 
3 
1 
4 
5 
aList[1] 
[2] 
[3] 
[4] 
aList[5] 
2 4 
1 5 
55 
1 
2 4 3 
Array Length = n 
# of chain nodes = 2e (undirected graph) 
# of chain nodes = e (digraph)
Array Adjacency Lists 
• Each adjacency list is an array list. 
2 
3 
1 
4 
5 
aList[1] 
[2] 
[3] 
[4] 
aList[5] 
2 4 
1 5 
55 
1 
2 4 3 
Array Length = n 
# of list elements = 2e (undirected graph) 
# of list elements = e (digraph)
Weighted Graphs 
• Cost adjacency matrix. 
 C(i,j) = cost of edge (i,j) 
• Adjacency lists => each list element is a 
pair (adjacent vertex, edge weight)
Number Of Java Classes Needed 
• Graph representations 
 Adjacency Matrix 
 Adjacency Lists 
Linked Adjacency Lists 
Array Adjacency Lists 
 3 representations 
• Graph types 
 Directed and undirected. 
 Weighted and unweighted. 
 2 x 2 = 4 graph types 
• 3 x 4 = 12 Java classes
Abstract Class Graph 
package dataStructures; 
import java.util.*; 
public abstract class Graph 
{ 
// ADT methods come here 
// create an iterator for vertex i 
public abstract Iterator iterator(int i); 
// implementation independent methods come here 
}
Abstract Methods Of Graph 
// ADT methods 
public abstract int vertices(); 
public abstract int edges(); 
public abstract boolean existsEdge(int i, int j); 
public abstract void putEdge(Object theEdge); 
public abstract void removeEdge(int i, int j); 
public abstract int degree(int i); 
public abstract int inDegree(int i); 
public abstract int outDegree(int i);

More Related Content

What's hot

K means clustering
K means clusteringK means clustering
K means clusteringThomas K T
 
A framework for practical fast matrix multiplication (BLIS retreat)
A framework for practical fast matrix multiplication� (BLIS retreat)A framework for practical fast matrix multiplication� (BLIS retreat)
A framework for practical fast matrix multiplication (BLIS retreat)Austin Benson
 
K means clustering | K Means ++
K means clustering | K Means ++K means clustering | K Means ++
K means clustering | K Means ++sabbirantor
 
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra Sahil Kumar
 
My presentation minimum spanning tree
My presentation minimum spanning treeMy presentation minimum spanning tree
My presentation minimum spanning treeAlona Salva
 
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...MLconf
 
Seismic data processing introductory lecture
Seismic data processing introductory lectureSeismic data processing introductory lecture
Seismic data processing introductory lectureAmin khalil
 
Seismic data processing
Seismic data processingSeismic data processing
Seismic data processingAmin khalil
 
5.4 randomized datastructures
5.4 randomized datastructures5.4 randomized datastructures
5.4 randomized datastructuresKrish_ver2
 
Seismic data processing (mathematical foundations)
Seismic data processing (mathematical foundations)Seismic data processing (mathematical foundations)
Seismic data processing (mathematical foundations)Amin khalil
 
K means and dbscan
K means and dbscanK means and dbscan
K means and dbscanYan Xu
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning treeSTEFFY D
 
Shortest route and mst
Shortest route and mstShortest route and mst
Shortest route and mstAlona Salva
 
Mean shift and Hierarchical clustering
Mean shift and Hierarchical clustering Mean shift and Hierarchical clustering
Mean shift and Hierarchical clustering Yan Xu
 
Higher-order organization of complex networks
Higher-order organization of complex networksHigher-order organization of complex networks
Higher-order organization of complex networksDavid Gleich
 
Spectral clustering with motifs and higher-order structures
Spectral clustering with motifs and higher-order structuresSpectral clustering with motifs and higher-order structures
Spectral clustering with motifs and higher-order structuresDavid Gleich
 

What's hot (20)

K means clustering
K means clusteringK means clustering
K means clustering
 
A framework for practical fast matrix multiplication (BLIS retreat)
A framework for practical fast matrix multiplication� (BLIS retreat)A framework for practical fast matrix multiplication� (BLIS retreat)
A framework for practical fast matrix multiplication (BLIS retreat)
 
K means clustering | K Means ++
K means clustering | K Means ++K means clustering | K Means ++
K means clustering | K Means ++
 
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
 
My presentation minimum spanning tree
My presentation minimum spanning treeMy presentation minimum spanning tree
My presentation minimum spanning tree
 
勾配法
勾配法勾配法
勾配法
 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
 
Sandia Fast Matmul
Sandia Fast MatmulSandia Fast Matmul
Sandia Fast Matmul
 
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
 
Seismic data processing introductory lecture
Seismic data processing introductory lectureSeismic data processing introductory lecture
Seismic data processing introductory lecture
 
Seismic data processing
Seismic data processingSeismic data processing
Seismic data processing
 
5.4 randomized datastructures
5.4 randomized datastructures5.4 randomized datastructures
5.4 randomized datastructures
 
Seismic data processing (mathematical foundations)
Seismic data processing (mathematical foundations)Seismic data processing (mathematical foundations)
Seismic data processing (mathematical foundations)
 
K means and dbscan
K means and dbscanK means and dbscan
K means and dbscan
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
Shortest route and mst
Shortest route and mstShortest route and mst
Shortest route and mst
 
Mean shift and Hierarchical clustering
Mean shift and Hierarchical clustering Mean shift and Hierarchical clustering
Mean shift and Hierarchical clustering
 
Higher-order organization of complex networks
Higher-order organization of complex networksHigher-order organization of complex networks
Higher-order organization of complex networks
 
Spectral clustering with motifs and higher-order structures
Spectral clustering with motifs and higher-order structuresSpectral clustering with motifs and higher-order structures
Spectral clustering with motifs and higher-order structures
 
08 clustering
08 clustering08 clustering
08 clustering
 

Similar to Lec28

Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjteUnit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjtepournima055
 
CS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on GraphsCS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on Graphsssuser034ce1
 
CS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on GraphsCS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on Graphsssuser034ce1
 
APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...
APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...
APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...KUSHDHIRRA2111026030
 
Graph representation
Graph representationGraph representation
Graph representationTech_MX
 
141222 graphulo ingraphblas
141222 graphulo ingraphblas141222 graphulo ingraphblas
141222 graphulo ingraphblasMIT
 
141205 graphulo ingraphblas
141205 graphulo ingraphblas141205 graphulo ingraphblas
141205 graphulo ingraphblasgraphulo
 
Graph Algorithms
Graph AlgorithmsGraph Algorithms
Graph AlgorithmsAshwin Shiv
 
Lecture 14 data structures and algorithms
Lecture 14 data structures and algorithmsLecture 14 data structures and algorithms
Lecture 14 data structures and algorithmsAakash deep Singhal
 
Chap10 slides
Chap10 slidesChap10 slides
Chap10 slidesHJ DS
 

Similar to Lec28 (20)

Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjteUnit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
 
CS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on GraphsCS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on Graphs
 
CS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on GraphsCS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on Graphs
 
APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...
APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...
APznzaZLM_MVouyxM4cxHPJR5BC-TAxTWqhQJ2EywQQuXStxJTDoGkHdsKEQGd4Vo7BS3Q1npCOMV...
 
Lec27
Lec27Lec27
Lec27
 
MATLAB - Arrays and Matrices
MATLAB - Arrays and MatricesMATLAB - Arrays and Matrices
MATLAB - Arrays and Matrices
 
Graph representation
Graph representationGraph representation
Graph representation
 
141222 graphulo ingraphblas
141222 graphulo ingraphblas141222 graphulo ingraphblas
141222 graphulo ingraphblas
 
141205 graphulo ingraphblas
141205 graphulo ingraphblas141205 graphulo ingraphblas
141205 graphulo ingraphblas
 
Graph Algorithms
Graph AlgorithmsGraph Algorithms
Graph Algorithms
 
Lecture 14 data structures and algorithms
Lecture 14 data structures and algorithmsLecture 14 data structures and algorithms
Lecture 14 data structures and algorithms
 
Data Mining Lecture_9.pptx
Data Mining Lecture_9.pptxData Mining Lecture_9.pptx
Data Mining Lecture_9.pptx
 
Ch07 linearspacealignment
Ch07 linearspacealignmentCh07 linearspacealignment
Ch07 linearspacealignment
 
UNIT III.pptx
UNIT III.pptxUNIT III.pptx
UNIT III.pptx
 
Chap10 slides
Chap10 slidesChap10 slides
Chap10 slides
 
Editors l21 l24
Editors l21 l24Editors l21 l24
Editors l21 l24
 
ppt 1.pptx
ppt 1.pptxppt 1.pptx
ppt 1.pptx
 
Unit ix graph
Unit   ix    graph Unit   ix    graph
Unit ix graph
 
Unit V - ppt.pptx
Unit V - ppt.pptxUnit V - ppt.pptx
Unit V - ppt.pptx
 
SVD.ppt
SVD.pptSVD.ppt
SVD.ppt
 

More from Nikhil Chilwant (20)

The joyless economy
The joyless economyThe joyless economy
The joyless economy
 
I 7
I 7I 7
I 7
 
IIT Delhi training pioneer ct (acemicromatic )
IIT Delhi training pioneer ct (acemicromatic )IIT Delhi training pioneer ct (acemicromatic )
IIT Delhi training pioneer ct (acemicromatic )
 
Lec39
Lec39Lec39
Lec39
 
Lec38
Lec38Lec38
Lec38
 
Lec37
Lec37Lec37
Lec37
 
Lec30
Lec30Lec30
Lec30
 
Lec26
Lec26Lec26
Lec26
 
Lec25
Lec25Lec25
Lec25
 
Lec24
Lec24Lec24
Lec24
 
Lec23
Lec23Lec23
Lec23
 
Lec21
Lec21Lec21
Lec21
 
Lec20
Lec20Lec20
Lec20
 
Lec19
Lec19Lec19
Lec19
 
Lec18
Lec18Lec18
Lec18
 
Lec17
Lec17Lec17
Lec17
 
Lec16
Lec16Lec16
Lec16
 
Lec15
Lec15Lec15
Lec15
 
Lec14
Lec14Lec14
Lec14
 
Lec13
Lec13Lec13
Lec13
 

Lec28

  • 1. Graph Operations And Representation
  • 2. Sample Graph Problems • Path problems. • Connectedness problems. • Spanning tree problems.
  • 3. Path Finding Path between 1 and 8. 2 3 8 1 10 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3 Path length is 20.
  • 4. Another Path Between 1 and 8 2 3 8 1 10 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3 Path length is 28.
  • 5. Example Of No Path 2 3 No path between 2 and 9. 8 1 10 4 5 9 11 6 7
  • 6. Connected Graph • Undirected graph. • There is a path between every pair of vertices.
  • 7. Example Of Not Connected 2 3 8 1 10 4 5 9 11 6 7
  • 8. Connected Graph Example 2 3 8 1 10 4 5 9 11 6 7
  • 9. Connected Components 2 3 8 1 10 4 5 9 11 6 7
  • 10. Connected Component • A maximal subgraph that is connected.  Cannot add vertices and edges from original graph and retain connectedness. • A connected graph has exactly 1 component.
  • 11. Not A Component 2 3 8 1 10 4 5 9 11 6 7
  • 12. Communication Network 2 3 8 1 10 4 5 9 11 6 7 Each edge is a link that can be constructed (i.e., a feasible link).
  • 13. Communication Network Problems • Is the network connected?  Can we communicate between every pair of cities? • Find the components. • Want to construct smallest number of feasible links so that resulting network is connected.
  • 14. Cycles And Connectedness 2 3 8 1 10 4 5 9 11 6 7 Removal of an edge that is on a cycle does not affect connectedness.
  • 15. Cycles And Connectedness 2 3 8 1 10 4 5 9 11 6 7 Connected subgraph with all vertices and minimum number of edges has no cycles.
  • 16. Tree • Connected graph that has no cycles. • n vertex connected graph with n-1 edges.
  • 17. Spanning Tree • Subgraph that includes all vertices of the original graph. • Subgraph is a tree.  If original graph has n vertices, the spanning tree has n vertices and n-1 edges.
  • 18. Minimum Cost Spanning Tree 2 3 8 4 8 1 10 4 6 4 4 5 5 9 11 6 7 6 7 5 2 • Tree cost is sum of edge weights/costs. 3 8 2
  • 19. A Spanning Tree 2 3 Spanning tree cost = 51. 8 1 10 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3 8 2
  • 20. Minimum Cost Spanning Tree 2 3 Spanning tree cost = 41. 8 1 10 4 5 9 11 6 7 4 8 6 6 7 5 2 4 4 5 3 8 2
  • 21. A Wireless Broadcast Tree 2 3 8 4 8 1 10 4 6 4 4 5 5 9 11 6 7 6 7 5 2 Source = 1, weights = needed power. Cost = 4 + 8 + 5 + 6 + 7 + 8 + 3 = 41. 3 8 2
  • 22. Graph Representation • Adjacency Matrix • Adjacency Lists  Linked Adjacency Lists  Array Adjacency Lists
  • 23. Adjacency Matrix • 0/1 n x n matrix, where n = # of vertices • A(i,j) = 1 iff (i,j) is an edge 2 3 1 4 5 1 2 3 4 5 12345 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0
  • 24. Adjacency Matrix Properties 2 3 1 4 5 1 2 3 4 5 12345 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 •Diagonal entries are zero. •Adjacency matrix of an undirected graph is symmetric. A(i,j) = A(j,i) for all i and j.
  • 25. Adjacency Matrix (Digraph) 2 3 1 4 5 1 2 3 4 5 12345 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 •Diagonal entries are zero. •Adjacency matrix of a digraph need not be symmetric.
  • 26. Adjacency Matrix • n2 bits of space • For an undirected graph, may store only lower or upper triangle (exclude diagonal).  (n-1)n/2 bits • O(n) time to find vertex degree and/or vertices adjacent to a given vertex.
  • 27. Adjacency Lists • Adjacency list for vertex i is a linear list of vertices adjacent from vertex i. • An array of n adjacency lists. 2 3 1 4 5 aList[1] = (2,4) aList[2] = (1,5) aList[3] = (5) aList[4] = (5,1) aList[5] = (2,4,3)
  • 28. Linked Adjacency Lists • Each adjacency list is a chain. 2 3 1 4 5 aList[1] [2] [3] [4] aList[5] 2 4 1 5 55 1 2 4 3 Array Length = n # of chain nodes = 2e (undirected graph) # of chain nodes = e (digraph)
  • 29. Array Adjacency Lists • Each adjacency list is an array list. 2 3 1 4 5 aList[1] [2] [3] [4] aList[5] 2 4 1 5 55 1 2 4 3 Array Length = n # of list elements = 2e (undirected graph) # of list elements = e (digraph)
  • 30. Weighted Graphs • Cost adjacency matrix.  C(i,j) = cost of edge (i,j) • Adjacency lists => each list element is a pair (adjacent vertex, edge weight)
  • 31. Number Of Java Classes Needed • Graph representations  Adjacency Matrix  Adjacency Lists Linked Adjacency Lists Array Adjacency Lists  3 representations • Graph types  Directed and undirected.  Weighted and unweighted.  2 x 2 = 4 graph types • 3 x 4 = 12 Java classes
  • 32. Abstract Class Graph package dataStructures; import java.util.*; public abstract class Graph { // ADT methods come here // create an iterator for vertex i public abstract Iterator iterator(int i); // implementation independent methods come here }
  • 33. Abstract Methods Of Graph // ADT methods public abstract int vertices(); public abstract int edges(); public abstract boolean existsEdge(int i, int j); public abstract void putEdge(Object theEdge); public abstract void removeEdge(int i, int j); public abstract int degree(int i); public abstract int inDegree(int i); public abstract int outDegree(int i);

Editor's Notes

  1. Vertices represent cities and edges represent highways. Edge weights are distances or driving times. Depending on the context, path length may either be the number of edges on the path or the sum of the weights of the edges on the path.
  2. Since a graph may have more than one path between two vertices, we may be interested in finding a path with a particular property. For example, find a path with minimum length
  3. Determine whether an undirected graph is connected.
  4. Determine connected components of an undirected graph
  5. In graph terminology, the term rooted tree is used to denote what we were earlier calling a tree (Chapter 12).
  6. In the communication networks area, we are interested in finding minimum cost spanning trees.
  7. Edge cost is power needed to reach a node. If vertex 1 broadcasts with power 2, only vertex 4 is reached. If it broadcasts with power 4, both 2 and 4 are reached. Min-broadcast rooted spanning tree is NP-hard. Cost of tree of previous slide becomes 26.
  8. Array length n simply means we need an array with n spots. A direct implementation using a Java array would need n+1 spots, because spot 0 would not be utilized. However, by using spot 0 for vertex 1, spot 1 for vertex 2, and so on, we could get by with a Java array whose length is actually n.