深度优先搜索可能的节点

时间:2015-12-02 04:39:47

标签: depth-first-search breadth-first-search

我试图找到一个可能的顺序,在执行深度优先搜索和广度优先搜索时可以访问给定的图节点。做深度首先搜索我得到FACBDE并做广度优先搜索我得到了FACDEB Please Click here to see the image但我不确定这是否是正确的答案。有人可以检查一下,告诉我我的答案是对的吗?

2 个答案:

答案 0 :(得分:0)

我会毫不犹豫地说你的BFS和DFS答案看起来是正确的。 我假设给定的节点是按字典顺序排序的。您是否在问这个问题,因为您对每种搜索方法的工作原理感到困惑?

请记住,如果您感到困惑,您可以将BFS视为基于级别的搜索。因此,按相应顺序搜索所有邻居。而DFS则是更粗暴的强制搜索。我建议为每种搜索方法记忆伪代码。当你真正编写这些东西时,它会帮助你。

BFS:

  • 将起始节点排队并标记为已访问
  • 启动循环
  • 查找所有邻居,如果尚未访问,则标记为已访问
  • 将新访问者添加到队列
  • 搜索目标
  • 出队(从队列中弹出第一个元素)
  • 重复...

DFS:

  • 将开始节点添加到堆栈
    • 启动循环
  • 找到第一个遇到和未访问的邻居
  • 标记为已访问
  • 添加到堆栈
  • 如果没有邻居,pop stack
  • 重复...

答案 1 :(得分:0)

DFS是正确的。 BFS应为FACEDB

展开A时,订单应为C - > E - > D根据边数。