在我看来,Pre-order traversal 和 DFS 与我们以深度方式遍历到叶节点的两种情况相同。如果我错了,有人可以纠正我吗?
提前致谢!
在我看来,Pre-order traversal 和 DFS 与我们以深度方式遍历到叶节点的两种情况相同。如果我错了,有人可以纠正我吗?
提前致谢!
不会的。预购具有访问左节点然后访问右节点的严格方式。但对于 DFS,它可以是任何一种,因为没有严格的时尚。因此,根据您压入堆栈的内容,存在不止一个遍历。
这可能取决于深度优先算法的定义和实现。Java Swing 的 JTree 组件的DefaultMutableTreeNode
类具有以下用于树遍历的枚举方法:
在 Java Swing 的实现中depthFirstEnumeration
,与postOrderEnumeration
. 我的测试和官方文档
证实了这一点。
其他人可以定义深度优先的不同含义。例如,维基百科上的一篇文章指出,前序和后序遍历是深度优先遍历的特定类型。这意味着深度优先遍历不是具体的遍历算法。