遍历所有节点的迭代加长伪代码

发布于 2024-12-11 18:37:46 字数 43 浏览 1 评论 0原文

使用迭代加长深度优先方法遍历图中所有节点的算法、伪代码或实际代码是什么?

What would the algorithm, pseudo code or actual code to traverse all the nodes in a graph using an iterative lengthening depth-first approach?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请持续率性 2024-12-18 18:37:46

我首先为您提供图的深度优先伪代码

DLS(node, goal, depth, visited) 
{
  if ( depth >= 0 ) 
    {
    if ( node == goal )
      return node

    visited.insert(node)

    for each child in expand(node)
      if (child is not in visited)
          DLS(child, goal, depth-1, visited)
  }
}

,迭代 DLS 是

IDDFS(start, goal)
{
  depth = 0
  while(no solution)
  {
    visited = [] // <-- Empty List
    solution = DLS(start, goal, depth,visited)
    depth = depth + 1
  }
  return solution
}

您始终可以通过使用访问列表删除图循环来转换树中的图。 :)

I give you first the depth-first pseudo-code for graph

DLS(node, goal, depth, visited) 
{
  if ( depth >= 0 ) 
    {
    if ( node == goal )
      return node

    visited.insert(node)

    for each child in expand(node)
      if (child is not in visited)
          DLS(child, goal, depth-1, visited)
  }
}

and the iterative DLS is

IDDFS(start, goal)
{
  depth = 0
  while(no solution)
  {
    visited = [] // <-- Empty List
    solution = DLS(start, goal, depth,visited)
    depth = depth + 1
  }
  return solution
}

You can always transform a graph in a tree by removing graph loop with a visited list. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文