Successfully reported this slideshow.
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
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. Stac...
Un Directed graph

a

d

b
e

c

f
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Process
As stated before in DFS nodes are visited by
going through the depth of the tree from the
starting node if we do t...
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Algorithm steps
Step:1
Push the root node in stack.
Step:2
Loop until stack is empty.
Step:3
Peek the node of the stack.
S...
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Example
Directed graph
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

F

E

dfs(A)
A-F A-G

Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

F

visit(F)

E

F-E

dfs(A)
A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

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

F

E

dfs(F)

F-E

dfs(A)
A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

dfs(C)
I

C-A C-D
D

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

F

E

dfs(F)
F-E
dfs(A)

A-F A-G
Funct...
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

dfs(C)
I

C-A C-D
D

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

F

E

dfs(F)
F-E
dfs(A)

A-F A-G
Funct...
DIRECTED DEPTH FIRST SEARCH
dfs(D)

A

D-C D-F

B

H

dfs(C)
C

G

C-A C-D

I

dfs(E)

D

E-C E-D E-G
F

E

dfs(F)
F-E

df...
DIRECTED DEPTH FIRST SEARCH
A

dfs(D)
B

H

C

G

D-C D-F
dfs(C)

I

C-A C-D
D

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

F

E

dfs(F)
F-E
dfs(A...
DIRECTED DEPTH FIRST SEARCH
dfs(D)

A

D-C D-F

dfs(C)
B

H

C

G

C-A C-D

I

dfs(E)

D

E-C E-D E-G
E

F

dfs(F)
F-E

df...
DIRECTED DEPTH FIRST SEARCH
A

dfs(C)
B

H

C

I

dfs(E)
D

F

C-A C-D

G

E-C E-D E-G
E

dfs(F)
F-E

dfs(A)
A-F A-G
Funct...
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I

dfs(E)
D

F

E-C E-D E-G

E

dfs(F)
F-E

dfs(A)
A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I

dfs(E)
D

F

E-C E-D E-G
E

dfs(F)
F-E

dfs(A)
A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

dfs(G)
B

H

C

G

dfs(E)

I

E-C E-D E-G

D

F

E

dfs(F)
F-E

dfs(A)
A-F A-G
Function cal...
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

dfs(E)

I

E-C E-D E-G

D

F

G

E

dfs(F)
F-E

dfs(A)
A-F A-G
Function call stack...
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

dfs(F)
F

E

F-E

dfs(A)
A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

F

E

dfs(A)

A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

F

E

dfs(A)

A-F A-G
Function call stack:
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

F

E

Nodes reachable from A: A, C, D, E, F, G
DIRECTED DEPTH FIRST SEARCH
A

B

H

C

G

I
D

F

E

Nodes reachable from A: A, C, D, E, F, G
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Time Complexity
Assume that graph is connected. Depth-first search visits every vertex
in the graph and checks every edge ...
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Advantage of depth first search
• The advantage of depth-first Search is that memory requirement is only linear
with respe...
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Disadvantages
• The disadvantage of Depth-First Search is that there is a possibility that it may
go down the left-most pa...
Definition
Process
Algorithmic steps
Example
Code
Time Complexity
Advantages
Disadvantages
Dfs presentation
Dfs presentation
Dfs presentation
Dfs presentation
Dfs presentation
Dfs presentation
Upcoming SlideShare
Loading in …5
×

Dfs presentation

3,227 views

Published on

Published in: Education, Technology

Dfs presentation

  1. 1. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  2. 2. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  3. 3. 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.
  4. 4. Un Directed graph a d b e c f
  5. 5. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  6. 6. Process As 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
  7. 7. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  8. 8. Algorithm steps Step: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.
  9. 9. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  10. 10. Example Directed graph
  11. 11. DIRECTED DEPTH FIRST SEARCH A B H C G I D F E dfs(A) A-F A-G Function call stack:
  12. 12. DIRECTED DEPTH FIRST SEARCH A B H C G I D F visit(F) E F-E dfs(A) A-F A-G Function call stack:
  13. 13. DIRECTED DEPTH FIRST SEARCH A B H C G I D dfs(E) E-C E-D E-G F E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  14. 14. DIRECTED DEPTH FIRST SEARCH A B H C G dfs(C) I C-A C-D D dfs(E) E-C E-D E-G F E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  15. 15. DIRECTED DEPTH FIRST SEARCH A B H C G dfs(C) I C-A C-D D dfs(E) E-C E-D E-G F E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  16. 16. DIRECTED DEPTH FIRST SEARCH dfs(D) A D-C D-F B H dfs(C) C G C-A C-D I dfs(E) D E-C E-D E-G F E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  17. 17. DIRECTED DEPTH FIRST SEARCH A dfs(D) B H C G D-C D-F dfs(C) I C-A C-D D dfs(E) E-C E-D E-G F E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  18. 18. DIRECTED DEPTH FIRST SEARCH dfs(D) A D-C D-F dfs(C) B H C G C-A C-D I dfs(E) D E-C E-D E-G E F dfs(F) F-E dfs(A) Function call stack: A-F A-G
  19. 19. DIRECTED DEPTH FIRST SEARCH A dfs(C) B H C I dfs(E) D F C-A C-D G E-C E-D E-G E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  20. 20. DIRECTED DEPTH FIRST SEARCH A B H C G I dfs(E) D F E-C E-D E-G E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  21. 21. DIRECTED DEPTH FIRST SEARCH A B H C G I dfs(E) D F E-C E-D E-G E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  22. 22. DIRECTED DEPTH FIRST SEARCH A dfs(G) B H C G dfs(E) I E-C E-D E-G D F E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  23. 23. DIRECTED DEPTH FIRST SEARCH A B H C dfs(E) I E-C E-D E-G D F G E dfs(F) F-E dfs(A) A-F A-G Function call stack:
  24. 24. DIRECTED DEPTH FIRST SEARCH A B H C G I D dfs(F) F E F-E dfs(A) A-F A-G Function call stack:
  25. 25. DIRECTED DEPTH FIRST SEARCH A B H C G I D F E dfs(A) A-F A-G Function call stack:
  26. 26. DIRECTED DEPTH FIRST SEARCH A B H C G I D F E dfs(A) A-F A-G Function call stack:
  27. 27. DIRECTED DEPTH FIRST SEARCH A B H C G I D F E Nodes reachable from A: A, C, D, E, F, G
  28. 28. DIRECTED DEPTH FIRST SEARCH A B H C G I D F E Nodes reachable from A: A, C, D, E, F, G
  29. 29. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  30. 30. Time Complexity 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.
  31. 31. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  32. 32. 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.
  33. 33. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages
  34. 34. Disadvantages • The disadvantage of Depth-First Search is that there is a possibility that it may go down the left-most path forever. Even a finite graph can generate an infinite tree. One solution to this problem is to impose a cutoff depth on the search. Although the ideal cutoff is the solution depth d and this value is rarely known in advance of actually solving the problem. If the chosen cutoff depth is less than d, the algorithm will fail to find a solution, whereas if the cutoff depth is greater than d, a large price is paid in execution time, and the first solution found may not be an optimal one. • Depth-First Search is not guaranteed to find the solution. • And there is no guarantee to find a minimal solution, if more than one solution exists.
  35. 35. Definition Process Algorithmic steps Example Code Time Complexity Advantages Disadvantages

×