【发布时间】:2017-07-21 16:26:14
【问题描述】:
我不确定这些问题是否被接受,如果不被接受,我很乐意删除/编辑它,但我认为这不仅仅是一个讨论问题,其答案将取决于意见,而事实背后隐藏着一个事实解决方案。
所以我正在阅读二叉树的级别顺序遍历,当我们使用队列数据结构时存在O(n) 解决方案。
算法是这样的
1) 创建一个空队列q
2) temp_node = 根
3) 当 temp_node 不为 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
我了解算法,但我无法理解的是,如果他事先不知道这个解决方案,他将如何提出这个解决方案。换句话说,队列的什么属性(可能是二叉树)使它成为在这种情况下使用的正确 DS。在这里使用队列进行二叉树的级别顺序遍历背后的想法是什么?谢谢!!
上述树的层序遍历为1 2 3 4 5
【问题讨论】:
标签: algorithm data-structures queue binary-tree