您的位置:首页 > 理论基础 > 数据结构算法

DFS & BFS--Data Structure

2017-09-29 09:23 246 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 算法