我正在尝试在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 ANode B / max flow的类current flow。如果这样做,应该如何连接节点? (例如,每个节点都应该有一个Connection,那不是多余的吗?我有点卡住了。
编辑或者我应该只使用Connections并实现某种搜索功能来简化链接元素。说实话,这就是我能想到的一切。

附言

此类大部分只是数学部分,因此我从未实现过图形,也没有涵盖此课程,因此,感谢您对新手的帮助:)(也就是说,如果在5分钟之内没有完成)。

最佳答案

我认为,您可以在每个节点中使用链接节点的地图。以节点密钥和链接信息为值。

这不是一个快速的解决方案,但是很简单。

拥有矩阵的速度更快,其中wich的元素是一个链接对象,其中包含所有链接信息。行和列将是节点索引。

关于java - 为Ford-Fulkerson算法创建类似于对象的图形的智能方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20543521/

10-13 21:48