Data structures BFS树到图

Data structures BFS树到图,data-structures,graph,tree,depth-first-search,breadth-first-search,Data Structures,Graph,Tree,Depth First Search,Breadth First Search,假设我们得到一个顶点为{A,B,C,D,E,F,G,H}的无向图的根在节点D的BFS树。 如何确定原始图形中是否存在特定边 这是一道选择题: 以下哪条边在原始图形中不存在 (F,G) (B,E) (A,G) (E,H) BFS树中的边是原始图中边的子集,多个原始图可能会给出相同的BFS树,因此您的问题的答案是: 如果BFS树有一条边=>原始图形也有这条边 如果BFS树没有边=>则原始图形可能有或可能没有此边。 因此,不可能总是知道原始图形是否具有边。 将MCQ问题添加到原始问题后回答: BF

假设我们得到一个顶点为{A,B,C,D,E,F,G,H}的无向图的根在节点D的BFS树。 如何确定原始图形中是否存在特定边

这是一道选择题:

以下哪条边在原始图形中不存在

  • (F,G)
  • (B,E)
  • (A,G)
  • (E,H)

  • BFS树中的边是原始图中边的子集,多个原始图可能会给出相同的BFS树,因此您的问题的答案是:

    • 如果BFS树有一条边=>原始图形也有这条边
    • 如果BFS树没有边=>则原始图形可能有或可能没有此边。

      因此,不可能总是知道原始图形是否具有边。
    将MCQ问题添加到原始问题后回答:
    BFS的工作方式是逐级进行的,这意味着在处理级别(i+1)中的任何节点之前,将先处理级别(i)中的所有节点。
    因此,在L4中的任何节点添加到队列之前,L3中的所有节点都应该添加到队列中,因此如果(F,G)在原始图中存在,那么节点F应该在L3中显示为节点G的子节点,而不是L4。。。因此,答案是边(F,G)。

    您无法确切知道图形中的边,但您可以确定某些边是(即BST中的边),而某些边不是(否则BST的外观会有所不同):

  • BST中的每条边也是图中的一条边
  • 允许从根到某个节点的路径比BST中这两个节点之间的最短路径短的每条边都不是图的成员
  • 让我们看一下以下边缘:

  • (F,G)
  • 如果该边在图中,则从D到F的最短路径为D-G-F,长度为2,但在BST中,从D到F的路径长度为3。这是不一致的,因为BST总是在根节点和图中任何其他节点之间找到最短路径

  • (B,E)
  • 这将允许从D到E的路径长度为3,这与BST一致。因此,这可能是图形中的一条边,但不必如此

  • (A,G)
  • 这将允许从D到a或从D到G的路径长度为2,这与BST一致,因为BST在这两种情况下都提供较短的路径。因此,这可能是图表中的一条边,但不是必须的

  • (E,H)
  • 这将允许从D到E的路径长度为3,这与BST一致。因此,这可能是图形中的一条边,但不必如此


    在这四条边中,只有(F,G)是一个明确的例子:这条边不能在图中。

    这可能是一个更好的问题。这是一个MCQ类型的问题,其选项为1。(F,G)2。(B,E)3。(A,G)4。(E,H)。以下哪条边在原始图形中不存在?我已经解释了为什么边(F,G)不能在原始图形中,对于其他选择,您可以参考@trincot的解释。@Anshul,如果您对我的答案有任何反馈,我们将不胜感激。