DFS & BFS--Data Structure

来源:互联网 发布:简述linux启动过程 编辑:程序博客网 时间:2024/06/03 16:11

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);

   


 

PreOrderTraversal (tree)

  if (tree == null) return;

  Print (tree.key); 

  PreOrderTraversal (tree.left);

  PreOrderTraversal (tree.right);

  

PostOrderTraversal (tree)

  if (tree == null) return;

  PostOrderTraversal (tree.left);

  PostOrderTraversal (tree.right);

  Print (tree.key);


  

 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);

  }



Summary:

Tree walks: DFS, BFS.

When working with a tree, recursive algorithms are common.

In CS, trees grow down.