首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度优先搜索基础知识

深度优先搜索基础知识
EN

Stack Overflow用户
提问于 2010-04-24 19:46:39
回答 2查看 2.1K关注 0票数 1

我正在尝试改进我目前的算法来解决8皇后问题,这是我第一次真正处理算法设计/算法。我想实现一个深度优先搜索,并结合这里描述的不同Y值的排列:http://en.wikipedia.org/wiki/Eight_queens_puzzle#The_eight_queens_puzzle_as_an_exercise_in_algorithm_design

我已经实现了置换部分来解决这个问题,但我在围绕深度优先搜索时遇到了一些问题。它被描述为一种遍历树/图的方式,但它会生成树图吗?似乎只有当深度优先搜索生成要遍历的树结构时,通过实现某些逻辑来仅生成树的某些部分,该方法才会更有效。

因此,从本质上讲,我必须创建一个算法来生成一个修剪过的词法排列树。我知道如何实现修剪逻辑,但我只是不确定如何将其与置换生成器联系起来,因为我一直在使用next_permutation。

有没有什么资源可以帮助我掌握深度优先搜索的基础知识,或者以树的形式创建词法排列?

EN

回答 2

Stack Overflow用户

发布于 2010-04-24 23:30:17

DFS算法本身不生成树/图。如果你想构建树和图,构建它就像你执行搜索一样简单。如果您只想找到一个soution,像链表这样的扁平LIFO数据结构就足够了:当您访问一个新节点时,将其附加到列表中。当您在搜索中留下要回溯的节点时,请将该节点弹出。

票数 1
EN

Stack Overflow用户

发布于 2015-01-17 14:37:07

anany levitan的一本名为“算法导论”的书对你的理解有一个恰当的解释。他还提供了8皇后问题的解决方案,就像你描述的那样。它肯定会对你有帮助。

根据我的理解,要找到一个解决方案,你不需要任何排列,你只需要dfs.That就可以找到解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2704324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档