BFS and DFS for traversing a Tree

最近刷关于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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容