我有一个包含 4 个节点的图,这些节点与其他节点相连。每个连接都有权重。例如:
A -> 5 -> B
A -> 3 -> C
B -> 4 -> C
B -> 3 -> D
每个节点都有相应的后向连接。但我在实现这种向后连接时遇到了问题。这是我现在拥有的算法(用文字表示):
- 创建节点(A、B、C、D)
- 将节点 A 连接到节点 B
- 设置连接权重
- 对其他节点重复 2,3。
按照这个算法,我必须分别进行向后连接(节点 B 到节点 A)。如果我有 100 个或更多节点,这将是对我注意力的考验。
如何在连接创建期间进行这些向后连接?
这是一个 Node 类:
public class Node {
private String name;
private Map<Node, Integer> connections;
public Node(String name) {
this.name = name;
connections = new HashMap<Node, Integer>();
}
public void connect(Node node, int weight) {
connections.put(node, weight);
//It is expected to make backward connection here
}
}
最佳答案
像这样:
public void connect(Node node, int weight) {
connections.put(node, weight);
node.connections.put(this, weight);
}
由于 Node
用作 connections
映射中的键,因此不要忘记覆盖其 equals
和 hashCode
方法。
关于java - 如何在图中进行向后节点连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231451/