Srikanth Kandalam
Srikanth Kandalam

Reputation: 1045

Is Pre-Order traversal on a binary tree same as Depth First Search?

It seems to me like Pre-order traversal and DFS are same as in both the cases we traverse till the leaf node in a depth wise fashion. Could anyone please correct me if I am wrong?

Thanks in advance!

Upvotes: 49

Views: 46667

Answers (5)

PreOrder Traversal is a type in DFS In DFS there are total 3 types of Traversals:

  • InOrder Traversal
  • PreOrder Traversal
  • PostOrder Traversal

Upvotes: 0

Amitrajit Bose
Amitrajit Bose

Reputation: 658

Intuitively, they feel the same due to the way we apply DFS algorithm using recursion (i.e making use of implicit stack data structure) in most of the implementations. In most of the cases (or all) the results are the same as for a Pre-Order Traversal.

The idea of DFS is to pick a branch and go deep into that, explore it completely. Whereas, the fashion of picking the branch and going down is determined by what kind of DFS you are implementing. Just for the sake of completion, in BFS algorithm, we traverse level-wise.

Remember, Pre-Order is just a type of DFS. We also have other methods which are shown below.

notes on dfs

Image Source: Base CS

For better understanding, refer this blog or even this one.

Upvotes: 9

lu5er
lu5er

Reputation: 3564

It won't be. Pre-order has a strict fashion of visiting the Left node and then the Right node. But for DFS it can be either as there is no strict fashion. So, more than one traversal exists based on what you push on the stack.

Upvotes: 7

Jan Bodnar
Jan Bodnar

Reputation: 11637

It probably depends on the definition and implementation of the depth-first algorithm. The DefaultMutableTreeNode class of the Java Swing's JTree component has the following enumeration methods used for tree traversal:

  • depthFirstEnumeration()
  • postorderEnumeration()
  • preorderEnumeration()
  • breadthFirstEnumeration()

In Java Swing's implementation the depthFirstEnumeration is the same as the postOrderEnumeration. My tests and the official documentation confirms this.

Others can define what depth-first means differently. For instance, an article on Wikipedia states that pre-order and post-order traversals are specific types of a depth-first traversal. This would mean that the depth-first traversal is not a concrete traversal algorithm.

Upvotes: 6

herohuyongtao
herohuyongtao

Reputation: 50657

Pre-order is one type of DFS.

There are three types of depth-first traversal: pre-order, in-order, and post-order.

Check out here for more info.

Upvotes: 79

Related Questions