如何测试图中的节点是否已连接(有边)?

问题描述 投票:-1回答:1

尝试简单:如果我有像这样的城市图:

[柏林(边缘:伦敦,柏林)-下一个->伦敦(边缘:巴黎)-下一个->巴黎。

而且我有一种断开节点的方法,例如

disconnect(伦敦,巴黎);

我想测试(JUnit)断开连接是否成功。我的想法是:编写一个isStillConnected(London)方法,如果伦敦没有边列表,则返回false;如果边列表为null,则返回true。代码提示:

public boolean isStillConnected(ListItem<Node<City, Road>> berlin) {
    boolean edgeExists = false;
    if(berlin.key.edgesGoingToHere.key.whereEdgeGoesTo != null) {
        edgeExists = true;
    }
    return edgeExists;      
}

问题:如果边缘没有边缘(我正在请​​求),则存在NULLPOINTER,因为我想访问为null的“ whereEdgeGoesTo”。

edgesGoingToHere是边缘列表的头。其中EdgeGoesTo是边缘所指向的节点。

谢谢您的回答!

java graph linked-list nodes adjacency-list
1个回答
1
投票

我不确定仅通过查看一小段代码就能理解您的对象结构,但假设if语句正在检查正确的值,以避免出现nullPointerException,而不是读取列表中的值并比较它们是否为null并使用.size()检查列表的大小,如果该值大于0,则返回true。

© www.soinside.com 2019 - 2024. All rights reserved.