129 Views

Download Presentation
##### Breadth-First Search

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Breadth-First Search**Text • Read Weiss, § 9.3 (pp. 299-304) Breadth-First Search Algorithms**Requirements**• Can be used to attempt to visit all nodes of a graph in a systematic manner • Works with directed and undirected graphs • Works with weighted and unweighted graphs**Overview**Breadth-first search starts with given node F C A B D H 0 G E Task: Conduct a breadth-first search of the graph starting with node D**Overview**Breadth-first search starts with given node Then visits nodes adjacent in some specified order (e.g., alphabetical) Like ripples in a pond F C A B D H 0 G E 1 Nodes visited: D**Overview**Breadth-first search starts with given node Then visits nodes adjacent in some specified order (e.g., alphabetical) Like ripples in a pond F C A B D H 0 G E 1 Nodes visited: D, C**Overview**Breadth-first search starts with given node Then visits nodes adjacent in some specified order (e.g., alphabetical) Like ripples in a pond F C A B D H 0 G E 1 Nodes visited: D, C, E**Overview**Breadth-first search starts with given node Then visits nodes adjacent in some specified order (e.g., alphabetical) Like ripples in a pond F C A B D H 0 G E 1 Nodes visited: D, C, E, F**Overview**When all nodes in ripple are visited, visit nodes in next ripples F C A B D H 0 G E 1 2 Nodes visited: D, C, E, F, G**Overview**When all nodes in ripple are visited, visit nodes in next ripples F C A B D H 0 3 G E 1 2 Nodes visited: D, C, E, F, G, H**Overview**When all nodes in ripple are visited, visit nodes in next ripples 4 F C A B D H 0 3 G E 1 2 Nodes visited: D, C, E, F, G, H, A**Overview**When all nodes in ripple are visited, visit nodes in next ripples 4 F C A B D H 0 3 G E 1 2 Nodes visited: D, C, E, F, G, H, A, B**Walk-Through**Enqueued Array F C A Q B D H G E How is this accomplished? Simply replace the stack with a queue! Rules: (1) Maintain an enqueued array. (2) Visit node when dequeued.**Walk-Through**Enqueued Array F C A Q D B D H G E Nodes visited: Enqueue D. Notice, D not yet visited.**Walk-Through**Enqueued Array F C A Q C E F B D H G E Nodes visited: D Dequeue D. Visit D. Enqueue unenqueued nodes adjacent to D.**Walk-Through**Enqueued Array F C A Q E F B D H G E Nodes visited: D, C Dequeue C. Visit C. Enqueue unenqueued nodes adjacent to C.**Walk-Through**Enqueued Array F C A Q F G B D H G E Nodes visited: D, C, E Dequeue E. Visit E. Enqueue unenqueued nodes adjacent to E.**Walk-Through**Enqueued Array F C A Q G B D H G E Nodes visited: D, C, E, F Dequeue F. Visit F. Enqueue unenqueued nodes adjacent to F.**Walk-Through**Enqueued Array F C A Q H B D H G E Nodes visited: D, C, E, F, G Dequeue G. Visit G. Enqueue unenqueued nodes adjacent to G.**Walk-Through**Enqueued Array F C A Q A B B D H G E Nodes visited: D, C, E, F, G, H Dequeue H. Visit H. Enqueue unenqueued nodes adjacent to H.**Walk-Through**Enqueued Array F C A Q B B D H G E Nodes visited: D, C, E, F, G, H, A Dequeue A. Visit A. Enqueue unenqueued nodes adjacent to A.**Walk-Through**Enqueued Array F C A Q empty B D H G E Nodes visited: D, C, E, F, G, H, A, B Dequeue B. Visit B. Enqueue unenqueued nodes adjacent to B.**Walk-Through**Enqueued Array F C A Q empty B D H G E Nodes visited: D, C, E, F, G, H, A, B Q empty. Algorithm done.**Consider Trees**• What do we call a breadth-first traversal on trees?