Two ways of traversal : DFS, BFS


Three methods to implement DFS:

InOrderTraversal (tree)

  if (tree == null) return;

  InOrderTraversal (tree.left);

  Print (tree.key);

  InOrderTraversal (tree.right);

   


DFS & BFS--Data Structure 

PreOrderTraversal (tree)

  if (tree == null) return;

  Print (tree.key); 

  PreOrderTraversal (tree.left);

  PreOrderTraversal (tree.right);

  

DFS & BFS--Data Structure

PostOrderTraversal (tree)

  if (tree == null) return;

  PostOrderTraversal (tree.left);

  PostOrderTraversal (tree.right);

  Print (tree.key);


  DFS & BFS--Data Structure

 Implement of BFS:

LevelTraversal (tree)

  if (tree == null)  return;

  Queue q;

  q.Enqueue (tree);

  while (!q.Empty()){

    node <-- q.Dequeue();

    Print (node);

    if (node.left != null) q.Enqueue (node.left);

    if (node.right != null) q.Enqueue (node.right);

  }


DFS & BFS--Data Structure


Summary:

Tree walks: DFS, BFS.

When working with a tree, recursive algorithms are common.

In CS, trees grow down.


相关文章: