Arrays 如何将图形节点之间的连接数组转换为具有连接的2D节点数组?
让我们看一个由相邻节点表示的顶点给出的无向图:Arrays 如何将图形节点之间的连接数组转换为具有连接的2D节点数组?,arrays,c,multidimensional-array,graph,Arrays,C,Multidimensional Array,Graph,让我们看一个由相邻节点表示的顶点给出的无向图: (1,2)、(1,3)、(3,2)、(4,1)、(2,5)、(4,5),如下所示: 顺序是完全随机的,每个连接只有一次,因此如果已经有(1,2),就不会有(2,1)。我有一个数组int顶点[12]={1,2,1,3,3,2,4,1,2,5,4,5}。我想创建一个数组,其中I-th索引表示一个节点号I,相应的子数组表示它的邻居,因此在这种情况下:int-graph[5][4]={{2,3,4},{1,3,5},{1,2},{1,5},{2,4}.我
(1,2)、(1,3)、(3,2)、(4,1)、(2,5)、(4,5)
,如下所示:
顺序是完全随机的,每个连接只有一次,因此如果已经有
(1,2)
,就不会有(2,1)
。我有一个数组int顶点[12]={1,2,1,3,3,2,4,1,2,5,4,5}
。我想创建一个数组,其中I-th
索引表示一个节点号I
,相应的子数组表示它的邻居,因此在这种情况下:int-graph[5][4]={{2,3,4},{1,3,5},{1,2},{1,5},{2,4}.
我尝试先查看所有偶数节点,然后再查看奇数节点,但我一直遇到两个相同节点的问题。也许我可以在开始分配任务之前先点一下。最简单的方法是什么?我试着先查看所有偶数节点,然后再查看奇数节点,这似乎很奇怪,因为顶点是按任意顺序给出的。在最坏的情况下,需要一个数组[(N+1)/2][(N+1)/2]
(允许使用特殊值结束每个连接到一个顶点的顶点列表,或将这些节点的数量放置在索引0或(N+1)/2-1
),然后按2步抛出顶点并更新两个顶点的节点列表[i]
和顶点[i+1]
,如果要对每个列表进行排序,“最简单的方法是什么?”很广泛,取决于各种因素。也许把你尝试过的东西贴出来,然后要求简化,并详细说明哪些方面是重要的简化。“最简单的方法是什么?”一个for循环,在每个循环中处理2个值我试着先查看所有偶数节点,然后查看奇数节点,这看起来很奇怪,因为顶点是按任意顺序给定的。在最坏的情况下,需要一个数组[(N+1)/2][(N+1)/2]
(允许使用特殊值结束每个连接到一个顶点的顶点列表,或将这些节点的数量放置在索引0或(N+1)/2-1
),然后按2步抛出顶点并更新两个顶点的节点列表[i]
和顶点[i+1]
,如果要对每个列表进行排序,“最简单的方法是什么?”很广泛,取决于各种因素。也许发布您尝试过的内容,然后要求简化,并详细说明哪些方面是重要的简化。“最简单的方法是什么?”一个for循环,在每个循环中处理2个值