39
Alyce Brady Alyce Brady CS 510: Computer CS 510: Computer Algorithms Algorithms Depth-First Graph Traversal Algorithm

Alyce Brady CS 510: Computer Algorithms

  • Upload
    lavey

  • View
    71

  • Download
    7

Embed Size (px)

DESCRIPTION

Depth-First Graph Traversal Algorithm. Alyce Brady CS 510: Computer Algorithms. Search: Look for a given node stop when node found, even if not all nodes were visited Traversal: Always visit all nodes. Search vs Traversal. Similar to Depth-first Traversal of a Binary Tree - PowerPoint PPT Presentation

Citation preview

Alyce BradyAlyce Brady

CS 510: Computer Algorithms CS 510: Computer Algorithms

Depth-FirstGraph

Traversal Algorithm

Search vs Traversal

Search: Look for a given nodeSearch: Look for a given node– stop when node found, even if not all stop when node found, even if not all

nodes were visitednodes were visited Traversal: Always visit all nodesTraversal: Always visit all nodes

Depth-first Search

Similar to Depth-first Traversal of a Similar to Depth-first Traversal of a Binary TreeBinary Tree

Choose a starting vertexChoose a starting vertex Do a depth-first search on each Do a depth-first search on each

adjacent vertexadjacent vertex

Pseudo-Code forDepth-First Search

depth-first-searchdepth-first-searchmark vertex as visitedmark vertex as visited

for each adjacent vertexfor each adjacent vertex

if unvisitedif unvisited

do a depth-first search on adjacent do a depth-first search on adjacent vertexvertex

Depth-First Search

A

B C

D E F G

Depth-First Search

A

B C

D E F G

AA

v

Depth-First Search

A

B C

D E F G

AA

v

Depth-First Search

A

B C

D E F G

A BA B

v

v

Depth-First Search

A

B C

D E F G

A BA B

v

v

Depth-First Search

A

B C

D E F G

A BA B

v

v

Depth-First Search

A

B C

D E F G

v

v

A B DA B D

v

Depth-First Search

A

B C

D E F G

v

v

A B DA B D

v

Depth-First Search

A

B C

D E F G

v

v

A B DA B D

v

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

v

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

v

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

v

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

v

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

v

Depth-First Search

A

B C

D E F G

v

v

v

A B D EA B D E

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E FA B D E F

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E FA B D E F

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E FA B D E F

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E F CA B D E F C

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E F CA B D E F C

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E F CA B D E F C

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

A B D E F CA B D E F C

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

v

v

vv

v

v

A B D E F C GA B D E F C G

v

Depth-First Search

A

B C

D E F G

A B D E F C GA B D E F C G

Was this a true search?Was this a true search?– How would we make it a true search?How would we make it a true search?

Was this a true traversal?Was this a true traversal?– How would we make it a true traversal?How would we make it a true traversal?

Time and Space Complexityfor Depth-First Search

Time ComplexityTime Complexity– Adjacency ListsAdjacency Lists

Each node is marked visited onceEach node is marked visited once Each node is checked for each incoming edgeEach node is checked for each incoming edge O (v + e)O (v + e)

– Adjacency MatrixAdjacency Matrix Have to check all entries in matrix: O(nHave to check all entries in matrix: O(n22))

Space ComplexitySpace Complexity– Stack to handle nodes as they are Stack to handle nodes as they are

exploredexplored Worst case: all nodes put on stack (if graph is Worst case: all nodes put on stack (if graph is

linear) linear) O(n)O(n)

Time and Space Complexityfor Depth-First Search