Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 二部图的划分邻接矩阵_Graph_Bipartite_Adjacency Matrix - Fatal编程技术网

Graph 二部图的划分邻接矩阵

Graph 二部图的划分邻接矩阵,graph,bipartite,adjacency-matrix,Graph,Bipartite,Adjacency Matrix,假设有一个图G和它的邻接矩阵a,我知道G是二部的。 如何将G中的顶点拆分为始终形成二部图的两个集合? 谢谢 声明一个数组,该数组的大小等于顶点数,最初将每个元素设置为0。然后在图形中执行深度优先搜索,记录您前进时所处的“级别编号”。这从1开始,并在1和2之间交替进行,每个边都经过。对于到达的每个顶点,将当前级别指定给相应的条目,该条目,并且(如果以前为0)递归以处理其子项。之后,的所有元素都将是1或2,并且的哪个[i]指示了i属于哪个集合顶点 直观地说,您可以想象DFS中从父级到子级的每次遍历都

假设有一个图G和它的邻接矩阵a,我知道G是二部的。 如何将G中的顶点拆分为始终形成二部图的两个集合?
谢谢

声明一个数组
,该数组的大小等于顶点数,最初将每个元素设置为0。然后在图形中执行深度优先搜索,记录您前进时所处的“级别编号”。这从1开始,并在1和2之间交替进行,每个边都经过。对于到达的每个顶点,将当前级别指定给相应的
条目,该条目
,并且(如果以前为0)递归以处理其子项。之后,
的所有元素都将是1或2,并且
的哪个[i]
指示了
i
属于哪个集合顶点

直观地说,您可以想象DFS中从父级到子级的每次遍历都会使您“下降”一个级别,而每次返回都会使您“上升”。根据二部属性,偶数级别上的所有顶点只能连接到奇数级别上的顶点,反之亦然,因此标记节点“偶数”或“奇数”就足以将它们划分为两个集合

如果图形包含多个组件,则每个组件当然需要单独的DFS