【问题标题】:depth-first-search深度优先搜索
【发布时间】:2009-09-10 05:15:39
【问题描述】:

我根据在网上找到的信息和旧的 java 书籍在 c# 中实现了深度优先搜索,并使用了 msdn 站点上的 Node 和 NodeList 和 Graph。 如何修改 DFS 或 BFS 以检查特定权重?

【问题讨论】:

    标签: graph depth-first-search


    【解决方案1】:

    如果你能找到一条从 A-C 的路径和一条从 C-D 的路径,那么你就有了你的路径 A-C-D。

    【讨论】:

      【解决方案2】:

      要实现 DFS,您需要使用堆栈隐式(递归调用函数本身)或显式(使用堆栈对象)。对于每个州,您都有一个正在访问的当前节点。您必须访问当前节点的每个邻居,并且如果您访问过当前节点,则可以跳过处理当前节点。

      这几乎就是算法。您需要做的就是将其转换为代码。

      【讨论】:

      • 只要从起始节点到达该节点,路径就存在
      • @leiz - 是的,也不是,假设存在从 A 到 D 的路径,但您想查看是否存在从 A 到 D 通过 C 的路径(例如 A-C-D)。
      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多