34得票15回答
不使用递归,帮我理解中序遍历

我能够理解使用非递归方式进行前序遍历,但我对中序遍历感到困难。我似乎无法理解它,也许是因为我还没有理解递归的内部工作原理。 目前我尝试过以下方法:def traverseInorder(node): lifo = Lifo() lifo.push(node) whil...

213得票4回答
广度优先与深度优先搜索

遍历树/图时,广度优先和深度优先的区别是什么?提供任何编码或伪代码示例都可以。

29得票5回答
我们可以使用Morris遍历来进行后序遍历吗?

我访问了很多网站,但找不到Morris后序遍历的任何算法。 我知道我们可以使用Morris算法进行前序和中序遍历。 如果有人指出后序Morris算法,那将非常有帮助。

16得票2回答
Catamorphism和Haskell中的树遍历

我迫不及待地希望了解与此SO问题相关的catamorphism:链接 :) 我只练习过《Real World Haskell》教程的开始部分。因此,也许我现在会问太多了,如果是这样,请告诉我应该学习哪些概念。 下面,我引用了维基百科关于catamorphism的代码示例链接. 我想知道您...

9得票3回答
为什么中序遍历和先序遍历在创建判断T2是否为T1子树的算法中很有用?

我正在查看一本面试书,其中有一个问题是: 您有两个非常大的二叉树:T1,具有数百万个节点,和T2,具有数百个节点。 创建算法以确定T2是否是T1的子树。 作者提到这可能是一种解决方案: 请注意,此处的问题指定T1具有数百万个节点,这意味着我们应该小心使用多少空间。例如,假设T1有1000...

181得票8回答
不使用栈或递归,解释 Morris 中序遍历二叉树的方法

请问有没有人能够在不使用栈或递归的情况下帮助我理解 Morris 中序遍历算法?我一直在尝试理解它的工作原理,但它总是让我无法理解。 1. Initialize current as root 2. While current is not NULL If current does no...

9得票2回答
非二叉树的顺序遍历

对于比二叉树更宽的树,术语“中序遍历”是否有明确定义的含义,或者“前序”和“后序”是唯一有意义的DFS类型?我的意思是每个节点具有n>2个孩子。 我猜对于偶数的n,在遍历完n/2个孩子后回到“根”可能意味着这样做,但是是否曾经使用过这种方法?奇数的n呢?

7得票1回答
Python - 树遍历问题

我在树的遍历方面遇到了困难,所以通常会像瘟疫一样避免它... 我有一个类,有点像这个简化版本(但功能上相同): class Branch(object): def __init__(self, title, parent=None): self.title = ti...

7得票6回答
我能否在没有递归和堆栈的情况下进行二叉树的中序遍历?

有没有人能给我一个不使用递归和栈的中序遍历二叉树的解决方案?

7得票4回答
使用先序遍历和中序遍历字符串检查子树

我正在阅读的一本书声称,检查二叉树 B 是否是二叉树 A 的子树的一种方法是构建两个树的 inorder 和 preorder 字符串(表示每个树的中序遍历和前序遍历的字符串),并检查 inorder_B 是否是 inorder_A 的子字符串 以及 preorder_B 是否是 preord...