我们可以在不回溯的情况下进行 DFS 吗?

Posted

技术标签:

【中文标题】我们可以在不回溯的情况下进行 DFS 吗?【英文标题】:Can we do DFS without backtracking? 【发布时间】:2019-10-10 10:23:22 【问题描述】:

是否可以不使用回溯法实现DFS算法?如果是,请说明如何实现。

【问题讨论】:

【参考方案1】:

不使用回溯就无法实现 DFS 算法。

想一想,DFS 的核心本质是尽可能从根节点开始探索,直到它必须返回去探索其他可能的路径。这意味着,一旦算法命中叶节点,您将在探索该路径以找到其他选项之前回溯到该节点。

为了进一步证明这一点https://medium.com/@andreaiacono/backtracking-explained-7450d6ef9e1a 将回溯定义为“一种通用算法......它逐步构建解决方案的候选者,并在确定候选者不可能完成时放弃每个部分候选者(“回溯”)一个有效的解决方案。”。看看这如何适用于 DFS。

【讨论】:

以上是关于我们可以在不回溯的情况下进行 DFS 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如果 CSRF Token 通过 Postman 我们可以在不提交表单的情况下获取数据吗

我可以在不使用 Apollo 的情况下使用 graphql 进行反应吗?

“回溯”和“分支和绑定”之间的区别

我们可以在不使用 select 语句的情况下选择表数据吗[关闭]

我可以让 SQLAlchemy 在不重复完整原始查询的情况下进行子查询预加载吗?

我们可以在不使用 GraphQL 的情况下在项目中实施 AWS-Appsync 吗?