CS 310 – Advanced Data Structures and Algorithms
Graphs July 18, 2017
Tong Wang UMass Boston CS 310 July 18, 2017 1 / 42
CS 310 Advanced Data Structures and Algorithms Graphs July 18, - - PowerPoint PPT Presentation
CS 310 Advanced Data Structures and Algorithms Graphs July 18, 2017 Tong Wang UMass Boston CS 310 July 18, 2017 1 / 42 Graph Definitions Graph a mathematical construction that describes objects and relations between them A graph
Tong Wang UMass Boston CS 310 July 18, 2017 1 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 2 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 3 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 4 / 42
v2 v0 v5 v1 v6 v4 v3 4 5 2 1 6 10 1 3 2 2 8 4
Tong Wang UMass Boston CS 310 July 18, 2017 5 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 6 / 42
1
2
3
Tong Wang UMass Boston CS 310 July 18, 2017 7 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 8 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 9 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 10 / 42
v2 v0 v5 v1 v6 v4 v3 v2 v0 v5 v1 v6 v4 v3
Tong Wang UMass Boston CS 310 July 18, 2017 11 / 42
v2 v0 v5 v1 v6 v4 v3 v2 v0 v5 v1 v6 v4 v3
Tong Wang UMass Boston CS 310 July 18, 2017 12 / 42
v2 v0 v5 v1 v6 v4 v3
v2
1
v0
1
v5 v1 v6 v4 v3
1
Tong Wang UMass Boston CS 310 July 18, 2017 13 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 14 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 15 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 16 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 17 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 18 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 19 / 42
v2 v0 v5 v1 v6 v4 v3
Tong Wang UMass Boston CS 310 July 18, 2017 20 / 42
v2 v0 v5 v1 v6 v4 v3
Tong Wang UMass Boston CS 310 July 18, 2017 21 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 22 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 23 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 24 / 42
1
2
3
Tong Wang UMass Boston CS 310 July 18, 2017 25 / 42
1
2
3
4
Tong Wang UMass Boston CS 310 July 18, 2017 26 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 27 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 28 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 29 / 42
CLRS 22.7
Tong Wang UMass Boston CS 310 July 18, 2017 30 / 42
1
2
3
Tong Wang UMass Boston CS 310 July 18, 2017 31 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 32 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 33 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 34 / 42
v2
1
v0
3
v5
1
v1
2
v6
2
v4
3
v3
v2 v0
2
v5 v1
2
v6
2
v4
1
v3
v2 v0
2
v5
1
v1
2
v6
2
v4
2
v3
v2 v0
2
v5 v1
2
v6
1
v4 v3
Tong Wang UMass Boston CS 310 July 18, 2017 35 / 42
v2 v0
1
v5 v1
1
v6 v4 v3
v2 v0 v5 v1 v6 v4 v3
v2 v0
1
v5 v1 v6 v4 v3
v2 v0 v5 v1 v6 v4 v3
Tong Wang UMass Boston CS 310 July 18, 2017 36 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 37 / 42
1 Create a queue q and enqueue all vertices of in-degree 0 2 Create an empty list t for topologically-sorted vertices 3 Loop while q is not empty 1
2
3
4
4 Return topologically-sorted list t Tong Wang UMass Boston CS 310 July 18, 2017 38 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 39 / 42
1 Create a queue q and enqueue all vertices of in-degree 0 2 Create an empty list t for topologically-sorted vertices 3 Set loopcount to 0 4 Loop while q is not empty 1
2
3
4
5
5 If loopcount < number of nodes in graph, return cycle-in-graph 6 Return topologically-sorted list t Tong Wang UMass Boston CS 310 July 18, 2017 40 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 41 / 42
Tong Wang UMass Boston CS 310 July 18, 2017 42 / 42