繁体   English   中英

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

[英]How can I test whether a node is connected (with edges) in a graph?

尽量简单:如果我有一个城市图表,如:

柏林(边缘:伦敦,柏林)--next--> 伦敦(边缘:巴黎)--next--> 巴黎。

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

断开连接(伦敦,巴黎);

如果断开连接成功,我想测试 (JUnit)。 我的想法:写一个方法 isStillConnected(London) 返回 false,如果伦敦没有边列表/如果边列表为空,否则为真。 代码思路:

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”。

edgeGoingToHere 是 Edge 列表的头部。 whereEdgeGoesTo 是节点,边缘指向的地方。

感谢您的任何回答!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM