Java 无向图中的顶点合并

Java 无向图中的顶点合并,java,methods,graph,graph-theory,vertices,Java,Methods,Graph,Graph Theory,Vertices,我正在尝试使用Java在删除无向图的边后合并无向图中的顶点。我用包含整数的袋子数组来表示这个图,其中的变量表示顶点和边的数量。例如,六边形图形将表示为: 6个顶点,6条边 0:51 1:20 2:31 3:42 4:53 5:04 冒号前的数字是顶点,冒号后的数字是它们连接到的顶点 如果我删除连接顶点1和2的边,我将获得以下结果: 6个顶点,5条边 0:51 1:0 2:3 3:42 4:53 5:04 然后我想合并这两个顶点(1和2)以获得: 5个顶点,5条边 0:14 1:02 2:13 3

我正在尝试使用Java在删除无向图的边后合并无向图中的顶点。我用包含整数的袋子数组来表示这个图,其中的变量表示顶点和边的数量。例如,六边形图形将表示为:
6个顶点,6条边
0:51
1:20
2:31
3:42
4:53
5:04

冒号前的数字是顶点,冒号后的数字是它们连接到的顶点

如果我删除连接顶点1和2的边,我将获得以下结果:
6个顶点,5条边
0:51
1:0
2:3
3:42
4:53
5:04

然后我想合并这两个顶点(1和2)以获得:
5个顶点,5条边
0:14
1:02
2:13
3:24
4:30

下面是我最新的解决方案编码尝试(虽然非常不完整,但至少是有意义的):

公共图形合并(int开始,int结束)
{
Graph tempGraph=新图形(V-1);//V=顶点数
对于(int i=0;i=end&&j>=end)
{
临时图表补遗(i-1,j-1);
}
else if(i=结束)
{
时间曲线图补遗(i,j-1);
}
//看起来这需要很多条件
//可能有一组更简单的条件
}
}
}
返回图;
}

开始和结束是要合并的顶点。tempGraph是使用合并顶点创建的新图形。

初始图形的这两条边会发生什么情况:第三步中的4:(5 3)和5:(0 4)?当图形的整个结构不是通过顶点表示,而是通过顶点索引表示时,这相当复杂:当移除顶点时,您必须更新整个图形,因为所有索引都必须更新。但是,有关
Graph
类中当前可用的方法的一些信息在此处可能会有所帮助。顶点合并后会重新编号(合并会删除垂直)。我应该提到重新编号很重要,这也是我很难解决这个问题的一个重要原因。你是对的,Marco13,很抱歉这个术语。我有一个isEdge方法,在给定顶点标记时检查边的存在性;一个addEdge方法,在添加之前使用isEdge检查边的存在性;一个removeEdge方法;以及一个toString方法,用于输出。如果有帮助的话,我可以把他们的代码放在帖子里(不想太长)。
public Graph MergeVerticies(int start, int end)
{
    Graph tempGraph = new Graph(V - 1); //V = number of vertices

    for(int i = 0; i < V; i++)
    {
        for(int j = 0; j < V; j++)
        {
            if(isEdge(i,j))
            {
                if(i == start && j == end)
                {
                    //not sure
                }
                else if(i == end && j == end)
                {
                    //not sure
                }
                else if(i >= end && j >= end)
                {
                    tempGraph.addEdge(i-1,j-1);
                }
                else if(i <= end && j >= end)
                {
                    tempGraph.addEdge(i,j-1);
                }
                //Seems like this would take a lot of conditions
                //There is probably a simpler set of conditions
            }
        }
    }
    return tempGraph;
}