of 41 /41

alizay-khan
• Category

## Education

• view

386

1

Embed Size (px)

description

### Transcript of Dfs presentation

PRESETA

TION

DATA S

TRUCTU

RE

Click icon to add picture

GROUP

MEM

BERS

WAJIH

A IMTI

AZ

AMMARA SID

DIQUI

SAMIA JA

VED

HAMNA AFZ

AL

RUBAB ZAHRA

DEPTH F

IRST

SEARCH

OUT LIN

ES

OUT LIN

ES

Definition:The aim of the DFS algorithm is travers the graph in such a way that is try to go

for from the root node. Stack is use in the implementation of the depth first search. Lets see how depth first search work with

respect to the following graph.

a d

cf

e

b

Un Directed graph

OUT LIN

ES

ProcessAs stated before in DFS nodes are visited by going through the depth of the tree from the starting node if we do the depth first traversal of the above graph and print the visited node it will be “ A B C D E F CD “ DFS visited the root node then its children nodes until it reach the end node E and F them moves up to the parents nodes

OUT LIN

ES

Algorithm stepsStep:1 Push the root node in stack.Step:2 Loop until stack is empty.Step:3 Peek the node of the stack.Step:4 If the node has unvisited child nodes get the unvisited child node mark it has travers and push it on stack.

OUT LIN

ES

Directed graph

Example

16

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

17

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

visit(F)F-E

18

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

19

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(C)C-A C-D

20

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(C)C-A C-D

21

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(C)C-A C-D

dfs(D)D-C D-F

22

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(C)C-A C-D

dfs(D)D-C D-F

23

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-GFunction call

stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(C)C-A C-D

dfs(D)D-C D-F

24

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(C)C-A C-D

25

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

26

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

27

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

dfs(G)

28

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

dfs(E)E-C E-D E-G

29

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

dfs(F)F-E

30

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

31

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

dfs(A)A-F A-G

Function call stack:

32

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

Nodes reachable from A: A, C, D, E, F, G

33

DIRECTED DEPTH FIRST SEARCH

F

A

B C G

D

E

H

I

Nodes reachable from A: A, C, D, E, F, G

OUT LIN

ES

Assume that graph is connected. Depth-first search visits every vertex in the graph and checks every edge its edge. Therefore, DFS complexity is O(V + E). As it was mentioned before, if an adjacency matrix is used for a graph representation, then all edges, adjacent to a vertex can't be found efficiently, that results in O(V2) complexity.

Time Complexity

OUT LIN

ES

Advantage of depth first search

• The advantage of depth-first Search is that memory requirement is only linear with respect to the search graph. This is in contrast with breadth-first search which requires more space. The reason is that the algorithm only needs to store a stack of nodes on the path from the root to the current node.

• The time complexity of a depth-first Search to depth d is O(b^d) since it generates the same set of nodes as breadth-first search, but simply in a different order. Thus practically depth-first search is time-limited rather than space-limited.

• If depth-first search finds solution without exploring much in a path then the time and space it takes will be very less.

OUT LIN

ES