Java Graph的节点表示

时间:2011-09-14 06:26:09

标签: java graph variable-assignment

所以我必须为我的作业构建这个,我得到一个输入文件,使用xy坐标创建图形,如:

(1,3)
(4,4)
(5,10)

等......(那就是文件中的输入)

然后,我给用户提供了做DFS / BFS的选项,然后他们输入了开始和目标坐标。我已经在我的节点(顶点)为ABC之前创建了一个邻接矩阵,但我从来没有使用类似于此节点的坐标作为我的节点。

我的问题是:我如何将这些坐标表示为图形中的节点...我知道邻接矩阵在这种情况下不起作用,我需要一些不同的东西(由于存在没有最大尺寸),但我完全不知道如何将这些坐标表示为此时的节点。有人能帮助我吗?

其他信息[来自评论]: 每一对代表两者之间的边缘,所以(1,3)有一条边/连接到(4,4)和(5,10)将连接到下面给出的下一对(我没有记录),我们可以假设输入是正确的/甚至是成对的

1 个答案:

答案 0 :(得分:0)

你需要映射你的坐标,每个坐标都有一个表示它的整数,整数应该是连续的[0,1,2,...,n-1],其中n是坐标数。 / p>

首先迭代坐标,然后使用新整数将每个新坐标插入到地图中。
这样,你可以创建一个相邻矩阵,因为你确切地知道你的图形有多大[记住,你计算它,所以你只找到了节点的数量,这是矩阵的大小!]

现在您可以轻松创建矩阵,将每个坐标称为整数。矩阵中的边缘总是如此,如果有边:p1,p2,则应设置matrix[map.get(p1)][map.get(p2)] = 1