depth-first-search相关内容

如何使用非递归方法实现图的深度优先搜索

我在这个问题上花了很多时间.但是,我只能找到树的非递归方法的解决方案:Non recursive for tree,或图的递归方法,递归图. 而且很多教程(我不在这里提供这些链接)也没有提供方法.或者教程完全不正确.请帮帮我. 更新: 真的很难描述: 如果我有一个无向图: 1/|\4 |23/ 1-- 2-- 3 --1 是一个循环. 在步骤:'将弹出顶点的邻居 ..
发布时间:2021-12-24 14:13:16 其他开发

广度优先搜索有什么用?

通常,当我不得不遍历图形时,我总是使用深度优先搜索,因为空间复杂度较低.老实说,我从未见过需要广度优先搜索的情况,尽管我的经验非常有限. 什么时候使用广度优先搜索有意义? 更新:我想我的答案 此处 显示了我使用 BFS(因为我认为是 DFS)的情况.不过,我仍然很想知道,为什么它在这种情况下有用. 解决方案 当您想通过遍历尽可能少的边到达节点时,即当您想在未加权的图中找到最短路 ..

使用 Python 查找所有迷宫解决方案

我正在尝试寻找(使用 Python)迷宫的所有可能解决方案.我有一个返回一个解决方案的 DFS 脚本.我正在尝试适应它,但我真的很难将整个递归事情包裹起来. 这是我拥有的代码,用于使用 DFS 寻找一种可能的解决方案:任何提示或帮助将不胜感激!(数组中的“lett"可以被忽略/认为是常规的“路径") def DFS(x,y,Map):if (Map[x][y]=="exit"): #检查我 ..
发布时间:2021-12-16 08:57:11 Python

如何遍历 NLTK 树对象?

给定一个括号内的解析,我可以将它转换为 NLTK 中的 Tree 对象: >>>从 nltk.tree 导入树>>>s = '(ROOT(S(NP(NNP欧洲))(VP(VBZ是)(PP(IN中)(NP(DT))(JJ同)(NNS趋势))))(..)))'>>>Tree.fromstring(s)Tree('ROOT', [Tree('S', [Tree('NP', [Tree('NNP', [ ..
发布时间:2021-12-12 23:51:36 其他开发

广度优先与深度优先

遍历树/图时,广度优先和深度优先有什么区别?任何编码或伪代码示例都很棒. 解决方案 这两个术语区分了两种不同的树行走方式. 展示差异可能是最简单的.考虑树: A/\乙丙//\德法 深度优先遍历将按此顺序访问节点 A、B、D、C、E、F 请注意,在继续前进之前,您要一直向下一条腿. 广度的第一次遍历会按照这个顺序访问节点 A、B、C、D、E、F 在这里,我们在下降之 ..

A* 是最好的寻路算法吗?

一般都说A*是解决寻路问题的最佳算法. 是否存在 A* 不是 最佳求解算法的情况? 与 BFS、DFS、UCS 等相比,A* 有多好? 解决方案 简短的回答是肯定的,在某些情况下,A* 不是解决问题的最佳算法.但是,有多种方法可以评估什么构成了最佳 算法以寻找解决方案. 如果您在从单一来源到多个目的地的多次搜索的性能方面考虑最佳,那么您应该考虑使用更合适的方法(Dijks ..

卡恩算法与 DFS 的课程安排 leetcode

课程安排leetcode:https://leetcode.com/problems/course-schedule/ 这个问题涉及检测一个循环,如果有,则您无法完成所有课程. 我听说最推荐使用 DFS 来检测循环,但是对于课程安排问题,推荐使用 Kahn 算法,这是一种 BFS 解决方案. 那么..是哪个?DFS 更适合检测循环还是 BFS? 解决方案 在实际工作中,使 ..

如何收集按深度级别分组的树结构的所有节点?

我有一个带有子节点和父节点的经典树结构.现在,我想从最低级别(即以相反顺序)开始收集按深度分组的所有节点,如下所示: 节点[["A4"],["A3","B3"],["A2","B2","C2"],["A1","B1","C1"],[“根"]]; 虽然使用递归遍历方法获取深度级别非常简单,但我想知道是否有任何方法可以在 BFS 或 DFS 搜索中的树遍历期间立即获取深度级别. 我知道我可以 ..

深度优先搜索 (DFS) 与广度优先搜索 (BFS) 伪代码和复杂度

我必须为计算连接数的算法开发伪代码图中的分量 G = (V, E) 给定顶点 V 和边 E. 我知道我可以使用深度优先搜索或广度优先搜索来计算连通分量的数量. 然而,我想用最高效的算法来解决这个问题,但我不确定每个算法的复杂度. 下面尝试以伪代码形式编写 DFS. 函数 DFS((V,E))用 0 标记 V 中的每个节点计数 ← 0对于 V 中的每个顶点做如果顶点被标记然后DF ..

Python深度优先搜索(包括循环)

所以我在StackOverflow中看到了以下有关Python中DFS算法的帖子(非常有用): 此python吗代码使用深度优先搜索(DFS)来查找所有路径? 我还有一个需要分析的图形(以找到两个节点之间的每条可能的路径),但是我还需要在其中包括周期.例如,如果我有一个这样的图形: graph = {'开始':['1'],'1':['2'],'2':['3','End'],'3': ..
发布时间:2021-05-13 19:26:02 Python

深度优先搜索以找到最短路径?

我知道通常通常先用广度来做,但是我们都被要求同时做,我已经先完成了广度.... 我觉得这是使用深度优先搜索的一个非常典型的示例,因此我希望可以在这里得到一些帮助...我试图使用深度优先搜索通过迷宫找到最短的路径,但是现在,我无法确定如何做到这一点.到目前为止,这是我的代码: void maze :: findPathRecursive(图表&g,int位置,int目标){如果(排名==目 ..
发布时间:2021-04-30 19:21:27 其他开发

二维数组遍历以获得独特的7位数字组合

我从一本面试准备书中碰到一个棘手的问题.您有一个3 x 3的矩阵,其中包含1到9的整数,如下所示 1 2 34 5 67 8 9 如何获得唯一的7位数字组合,并且前几个数字都以4(矩阵[1] [0])开头.遍历的目的类似于象棋子上的白嘴鸦.水平或垂直的一种方式...(具有4125874是有效的7位数组合). 我尝试编写一些代码,并在此处使用布尔访问标志进行常规2D矩阵遍历以获得答案, ..
发布时间:2021-04-30 19:21:24 其他开发

Leetcode200.岛屿数目TLE

链接到问题: https://leetcode.com/problems/number-of-islands/ 给出一张二维地图,分别是"1"(土地)和"0"(水),计算岛屿的数量.一个岛屿被水包围,是通过水平或垂直连接相邻的土地而形成的.您可能会假设网格的所有四个边缘都被水包围了. 示例1: 输入: 11110110101100000000 输出:1 我的逻辑是简 ..
发布时间:2021-04-30 19:21:19 Python

带排序的递归子查询

我在此处看过蒂姆·霍尔的精彩文章,允许您使用自引用实体,并使用Oracle中的CTE语法显示层次数据(从顶级节点开始并递归联接). 所以我有如下代码: 与J1(JOBMST_ID,JOBMST_NAME,JOBMST_PRNTID,JOBMST_TYPE,LVL)一样(SELECT JOBMST_ID,JOBMST_NAME,JOBMST_PRNTID,JOBMST_TYPE,1来自TID ..
发布时间:2021-04-30 19:21:16 数据库

使用Python查找所有迷宫解决方案

我正在尝试(使用Python)找到迷宫的所有可能解决方案.我有一个DFS脚本,它返回一个解决方案.我正在尝试适应它,但是我真的很难把头放在整个递归过程上. 这是我拥有的代码,可用于使用DFS查找一种可能的解决方案:任何提示或帮助将不胜感激!(数组中的“字母"可以忽略/认为是常规的“路径") def DFS(x,y,Map):if(Map [x] [y] ==" exit"):#检查我们是 ..
发布时间:2021-04-30 19:21:13 Python

每个矩阵在概念上都对应图吗?

我了解有3种常见的图形表示方式: 邻接矩阵 邻接表 边缘列表 也就是说,我在LeetCode上解决的问题经常使用矩阵,而解决方案则需要DFS或BFS.例如,给定下面的矩阵,则当您向左,向右,向上和向下移动(而不是对角线)时,查找目标字符串是否存在. [['应用程序'],[‘e’,’a’,‘l’],[‘r’,‘t’,’e’]] 这需要DFS方法.这是因为此矩阵代表图形还是DF ..

深度优先搜索打开和关闭列表

此刻我真的很困,我要疯了. 用最简单的术语来说,什么时候停止深度优先搜索的“打开"和“关闭"列表? 您是否打开并关闭每个节点,直到没有剩余节点为止? 请帮助,因为我要在这里呆着 谢谢 解决方案 打开列表可帮助您进行深度优先搜索和宽度优先搜索,以正确遍历树.逐步考虑算法.您所在的节点上有许多孩子,并且您将扩展其中一个孩子.扩展后,应该有一种机制可以恢复并继续遍历.打开 ..
发布时间:2021-04-10 18:34:03 AI人工智能