Home
Archaeology
Astronomy
Biology
Books
Business
Chemistry
Coins
Computers
Conservation
Cooking
Earth Science
Farming
Economics
Finance
Games
Geography
Health Science
History by Date
Hobbies
Law
Mathematics
Medicine
Military Technology
Movies
Music
People
Pharmacology
Philosophy
Physics
Psychology
Religion
Science History
Technology
Sports
Television
Video
Visual Art
Privacy
Contact Us



Depth-first search

Depth First Search (DFS) is a way of traversing or searching a Tree_(graph_theory) or Tree structure. Intuitively, you start at the root and explore as far as possible along each branch before backtracking.

Formally, DFS is an uninformed search that progresses by expanding the first child node of the search tree that appears and thus going deeper and deeper until a goal state is found, or it hits a node that has no children. Then the search backtracks and starts off on the next node.

From an algorithmic point-of view, all freshly expanded nodes are placed at the front of the search queue for expansion.

  • DFS is complete - if the tree is finite, then a solution would be found if one exists.
  • DFS is optimal with a finite tree and all non-negative path costs.

Space complexity of DFS is much lower compared to BFS (Breadth-first search). It also lends itself much better to heuristic methods of choosing a likely-looking branch.

DFS suffers from non-termination when the length of a path in the search tree is infinite. This can be solved by maintaining an increasing limit on the depth of the tree, which is called iterative deepening depth-first search.


Compare Breadth-first search.


Copyright 2004. All rights reserved.