正如标题所说..在java中存储连接图的最有效方法是什么?
例如,假设我有多个位置以各种方式相互连接,我必须遍历图表以查看它是否已连接..任何帮助/评论都会有所帮助,谢谢!
正如标题所说..在java中存储连接图的最有效方法是什么?
例如,假设我有多个位置以各种方式相互连接,我必须遍历图表以查看它是否已连接..任何帮助/评论都会有所帮助,谢谢!
一种常用的表示是由图中所有节点索引的矩阵(二维数组),其中M[i,j] == true
如果存在从节点i
到的有向边j
。该主题的一个变体是存储两个节点之间的边的长度/权重(其中缺失的边可能由值 -1 表示)。
使用没有对称性的邻接矩阵,从而表示方向而不是简单的邻接。
为了查找效率 - 使用布尔矩阵(如果有弧连接节点,则为 true,如果没有,则为 false)。为了提高内存效率,将您的对象属性之一定义为其指向的对象的(动态)列表。请注意,只有当您的图中有很多节点时,后者才会有所帮助。
我错过了什么吗?数据已经是一个图,只需序列化它。对于书面讨论矩阵的问题完全为时过早。