我正在尝试在java中实现Ford–Fulkerson algorithm并且我遇到了一些问题,我的代码变得令人讨厌且不必要地复杂。
我想要的是:
class Node:
private int id
private static int idAssigner // I may move this to another class
// etc
class flowNetwork
private Node source // begin point
private Node sink // end point
现在我想按照类似于(双向)树的方式对节点进行分组。每个节点都有一个列表,列出了它所连接的所有节点。
我的问题是:我怎样才能给这个连接一个值(最大流量,当前流量)?
我应该创建另一个Connection
Node A
和Node B
/ max flow
的课程current flow
。如果我这样做,我应该如何连接节点? (因为每个节点都应该有一个Connection
并且不会多余吗?我有点卡住了。
编辑或者我应该只有Connections
并实现某种搜索功能来表示链接元素。说实话,这就是我所能想到的。
P.S。
这个课程主要只是数学部分,所以我从来没有实现过图表,课程也没有这个,所以谢谢你帮助一个新手:)(如果没有在5分钟内关闭的话)
答案 0 :(得分:-1)
我认为,您可以在每个节点中使用链接节点的映射。使用节点密钥和链接信息作为值。
这不是一个快速的解决方案,但它很简单。
更快的是拥有一个矩阵,其中的元素是一个链接对象,包含所有链接信息。行和列将是节点索引。