java—尝试获取图的边

ffscu2ro  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(288)

我正在尝试编写一个方法,它获取两个节点,并在每个节点的边对象列表中搜索一个连接两个节点并返回源节点的边的对象。如果没有找到任何内容,则应返回null。
方法返回一个节点的边列表。

/**
 * Searches for an edge from the source node to the destination.
 * @param source The source, or first, node
 * @param destination The destination, or second, node
 * @return The edge between the nodes, or null if not found
 */
public Edge getEdge(Node source, Node destination) {
    // TODO
    Edge e1 = null;
    for (int i = 0; i < source.getEdges().size(); i++) {
            if (source.getEdges().contains(destination)) {
                e1.setNode1(source);
                e1.setNode2(destination);
        }
    }
    return e1;
}
sg24os4d

sg24os4d1#

在常见的图表示法中,通常没有“边对象”这样的东西:邻接表、邻接矩阵、关联矩阵。对于图中的两个节点,您通常可以在它们之间找到一条路由(bfs、dfs、dijkstra和其他算法,具体取决于您要查找的路由类型),或者判断这两个节点是否相邻(从技术上讲,这意味着它们之间有一条边,但再一次-边或多或少完全由它所连接的节点表征-一组边是一个图(sorta)的节点的二进制子集。请澄清你的问题。

相关问题