Graph traversal
Topological sort Breadth-first search
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 1
Graph traversal Topological sort Breadth-first search Cinda Heeren - - PowerPoint PPT Presentation
Graph traversal Topological sort Breadth-first search Cinda Heeren / Andy Roth / Will Evans / March 27, 2020 1 Geoffrey Tien Announcements All CPSC 221 deadlines postponed to 23:59, Apr.09 TA evaluations and instructor/course
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 1
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 2
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 3
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 4
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 5
CPSC 110 CPSC 121 MATH 100 MATH 101 CPSC 210 CPSC 221 STAT 241 MATH 200 MATH 221 CPSC 213 CPSC 310 CPSC 320 CPSC 313
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 6
Vertex In-degree 1 2 1 3 1 4 2 5 2 6
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 7
Queue: 1 6
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 8
Vertex In-degree 1 2 1 3 1 4 2 5 2 6
Queue: 1 6 1 2
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 9
Vertex In-degree 1 2 3 1 4 1 5 2 6 Queue: 2
3
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 10
Vertex In-degree 1 2 3 4 1 5 2 6 Queue: 3
1 4
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 11
Vertex In-degree 1 2 3 4 5 1 6 Queue:
4
5
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 12
𝑃 𝑛 + 𝑜 vs 𝑃 𝑜2 𝑃 𝑜 𝑜 times... 𝑃 𝑒𝑓 𝑤 vs 𝑃 𝑜 For the adjacency list, how many vertices/edges have been processed in total?
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 13
start 1 hop 2 hops 3 hops 4 hops This looks very similar to a level-order traversal in a tree! How to control it? Use a queue!
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 14
3 1 2 9 8 6 7 4 5 1, 3 1 0, 2, 4, 6, 7 2 1, 3, 8, 9 3 0, 2 4 1, 5, 6, 7 5 4 6 1, 4, 7 7 1, 4, 6 8 2 9 2
Identified: 1 2 3 4 5 6 7 8 9
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 15
3 1 2 9 8 6 7 4 5 1, 3 1 0, 2, 4, 6, 7 2 1, 3, 8, 9 3 0, 2 4 1, 5, 6, 7 5 4 6 1, 4, 7 7 1, 4, 6 8 2 9 2 T T T T T T T T T T
Identified: 1 2 3 4 5 6 7 8 9 Queue: Visited: 1 3 2 4 6 7 8 9 5 1 3 2 4 6 7 8 9 5 1 hop 2 hops 3 hops
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 16
Algorithm BFS 𝐻, 𝑤 { mark 𝑤 as identified enqueue(𝑤) while (queue is not empty) { 𝑣 = dequeue() for all vertices 𝑥 adjacent to 𝑣, do { if (𝑥 has not been identified or visited) { mark 𝑥 as identified enqueue(𝑥) } }
} } A for loop nested inside a while loop. Running time?
March 27, 2020 Cinda Heeren / Andy Roth / Will Evans / Geoffrey Tien 17