0

简短描述:我有一个不保存一半边的有向图。

我有以下代码:

int startV = sc.nextInt();
int endV = sc.nextInt();
int length = sc.nextInt();
a = maze.insertVertex(startV);
b = maze.insertVertex(endV);
e = maze.insertEdge(a, b, length);

然后,在 insertEdge 中,我有:

public Edge insertEdge(Vertex v, Vertex w, int length) {
    Edge e = new Edge(v, w, length);
    if(!edges.contains(e))
    {
        v.addOutgoingEdge(e);
        w.addIncomingEdge(e);
        edges.add(e);
    }
    return e;
}

传入和传出边的代码是:

public void addIncomingEdge(Edge e)
{
    incomingEdges.add(e);
}

public void addOutgoingEdge(Edge e)
{
    outgoingEdges.add(e);
}

问题是,outGoing 被添加到 a,但传入边缘没有添加到 b!

有人能帮我吗?

提前致谢!

4

0 回答 0