Graph 在图形数据结构的同级顶点上实现BFS

Graph 在图形数据结构的同级顶点上实现BFS,graph,breadth-first-search,Graph,Breadth First Search,我试图理解数据结构中的图形,在理解过程中受到了冲击。有人能帮助理解这种方法吗。图形允许多个顶点连接到任意顶点而不受任何约束。插入边时,要连接的顶点可能位于同一标高上,也可能位于任何更低的标高上 在上图中,BFS通过图表给出了其中一个的5,6,7和另一个的5,7,6。在图形上获得相同级别的顶点没有任何约束。这是如何确定的 请让我知道,因为没有任何资源指出这种不同。如果其中一个引用7并添加到队列(图1),则6,7都是从5中未访问的。BFS将被违反 编辑: 在上面的BFS示例图像中,我们有5个顶点

我试图理解数据结构中的图形,在理解过程中受到了冲击。有人能帮助理解这种方法吗。图形允许多个顶点连接到任意顶点而不受任何约束。插入边时,要连接的顶点可能位于同一标高上,也可能位于任何更低的标高上

在上图中,BFS通过图表给出了其中一个的5,6,7和另一个的5,7,6。在图形上获得相同级别的顶点没有任何约束。这是如何确定的

请让我知道,因为没有任何资源指出这种不同。如果其中一个引用7并添加到队列(图1),则6,7都是从5中未访问的。BFS将被违反

编辑:


在上面的BFS示例图像中,我们有5个顶点,如果从5开始,我们可以作为相邻节点遍历到6,7。如果我们试图在这里实现BFS,那么我们可以将6或7添加到队列中,但7是有效的,因为它处于同一级别。这是如何识别的?

您发布的两个图形显示了相同的图形:相同的三个顶点与相同的三条边连接。图形没有级别。绘制图形时,它们不跟踪任何类型的边排序,也不跟踪顶点的水平或垂直布局


从顶点5开始的BFS接下来可以访问顶点6或顶点7。任一顺序都是有效的BFS遍历。

您发布的两个图形显示相同的图形:相同的三个顶点与相同的三条边连接。图形没有级别。绘制图形时,它们不跟踪任何类型的边排序,也不跟踪顶点的水平或垂直布局


从顶点5开始的BFS接下来可以访问顶点6或顶点7。任一顺序都是有效的BFS遍历。

谢谢您的回复。我不确定我是否理解正确。BFS应该穿过宽度,如果它选择下面的顶点(这可能会违反)。我也编辑了这个问题。你能对此提供更多的解释吗?谢谢你的回复。我不确定我是否理解正确。BFS应该穿过宽度,如果它选择下面的顶点(这可能会违反)。我也编辑了这个问题。请您对此作进一步解释。首先,您所说的“同一级别的节点”是什么意思。在最后一个示例中,节点6和7处于同一级别(它们距离节点5有一条边),更重要的是,节点8也与节点6和7Ok处于同一级别,BFS表示穿过宽度,然后转到下一行。从5,也可以考虑7(假设图现在被反转)。所有这些方法都被认为是正确的(BFS-5,7,8,9,6(或)5,7,8,6,9(或)5,7,6,8,9(或)5,7,6,9,8)?。那么我们如何区分BFS和DFS呢?BFS按级别顺序为您提供节点,这意味着如果您(按该顺序)到达级别为
k
的节点,那么接下来的所有节点都将处于级别
k
或更高的级别。按顺序:5,7,8,9,6节点6之前不能有节点9。因为节点9距离根(节点5)有两条边,而节点6距离根(节点5)有一条边,所以5,7,6,9,8也不是有效的BFS组合。例如,有效的BFS可以是5、6、7、6、8、9。通常(对于此图),BFS组合为(5)(6,7,8)(9),括号内的任何数字都可以与同一括号内的任何其他数字进行切换。要生成DFS订单,请使用。要生成BFS顺序,需要按级别覆盖图形,我的意思是:首先是根,然后是根子级,然后是根子级的子级,依此类推。为此,您可以使用一个队列,首先看看它是如何工作的,您所说的“同一级别的节点”是什么意思。在最后一个示例中,节点6和7处于同一级别(它们距离节点5有一条边),更重要的是,节点8也与节点6和7Ok处于同一级别,BFS表示穿过宽度,然后转到下一行。从5,也可以考虑7(假设图现在被反转)。所有这些方法都被认为是正确的(BFS-5,7,8,9,6(或)5,7,8,6,9(或)5,7,6,8,9(或)5,7,6,9,8)?。那么我们如何区分BFS和DFS呢?BFS按级别顺序为您提供节点,这意味着如果您(按该顺序)到达级别为
k
的节点,那么接下来的所有节点都将处于级别
k
或更高的级别。按顺序:5,7,8,9,6节点6之前不能有节点9。因为节点9距离根(节点5)有两条边,而节点6距离根(节点5)有一条边,所以5,7,6,9,8也不是有效的BFS组合。例如,有效的BFS可以是5、6、7、6、8、9。通常(对于此图),BFS组合为(5)(6,7,8)(9),括号内的任何数字都可以与同一括号内的任何其他数字进行切换。要生成DFS订单,请使用。要生成BFS顺序,需要按级别覆盖图形,我的意思是:首先是根,然后是根子级,然后是根子级的子级,依此类推。为此,您可以使用一个队列,查看它是如何工作的