美文网首页
BFS and DFS for traversing a Tre

BFS and DFS for traversing a Tre

作者: 程序猪小羊 | 来源:发表于2018-06-26 17:24 被阅读39次

    最近刷关于Tree的题遇到了不少用BFS/DFS解决的问题,鉴于自己对概念一知半解,翻出之前一个朋友推荐过的文章学习一下。
    原文地址:https://www.geeksforgeeks.org/level-order-tree-traversal/

    BFS vs DFS for Binary Tree

    What are BFS and DFS for Binary Tree?
    A Tree is typically traversed in two ways:

    注意:in, pre, post 是实现DFS的三种方式。

    Breadth First or Level Order Traversal : 1 2 3 4 5
    Please see this post for Breadth First Traversal.
    printLevelorder(tree)
    通常有两种实现方式
    Iteration
    Queue

    BFS - Queue实现 - 算法:

    1. Create an empty queue q
    2. temp_node = root /start from root/
    3. Loop while temp_node is not NULL
      a) print temp_node->data.
      b) Enqueue temp_node’s children (first left then right children) to q
      c) Dequeue a node from q and assign it’s value to temp_node

    DFS的三种实现方式

    Inorder

    对于BST,使用Inorder方式输出可以使得结点升序排列。

    PS. Sorted Array to BST - 参见LC.107

    Preorder

    Postorder

    相关文章

      网友评论

          本文标题:BFS and DFS for traversing a Tre

          本文链接:https://www.haomeiwen.com/subject/fdlmyftx.html