CS 310 – Advanced Data Structures and Algorithms
Graphs July 17, 2018
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 1 / 42
CS 310 Advanced Data Structures and Algorithms Graphs July 17, - - PowerPoint PPT Presentation
CS 310 Advanced Data Structures and Algorithms Graphs July 17, 2018 Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 1 / 42 Graph Definitions Graph a mathematical construction that describes objects and
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 1 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 2 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 3 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 4 / 42
v2 v0 v5 v1 v6 v4 v3 4 5 2 1 6 10 1 3 2 2 8 4
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 5 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 6 / 42
1
2
3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 7 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 8 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 9 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 10 / 42
v2 v0 v5 v1 v6 v4 v3 v2 v0 v5 v1 v6 v4 v3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 11 / 42
v2 v0 v5 v1 v6 v4 v3 v2 v0 v5 v1 v6 v4 v3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 12 / 42
v2 v0 v5 v1 v6 v4 v3
v2
1
v0
1
v5 v1 v6 v4 v3
1
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 13 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 14 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 15 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 16 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 17 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 18 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 19 / 42
v2 v0 v5 v1 v6 v4 v3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 20 / 42
v2 v0 v5 v1 v6 v4 v3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 21 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 22 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 23 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 24 / 42
1
2
3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 25 / 42
1
2
3
4
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 26 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 27 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 28 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 29 / 42
CLRS 22.7
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 30 / 42
1
2
3
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 31 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 32 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 33 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 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
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 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
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 36 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 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 Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 38 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 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 Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 40 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 41 / 42
Mohammad Hadian Advanced Data Structures and Algorithms July 17, 2018 42 / 42