java - 如何在图中进行向后节点连接?

标签 java algorithm

我有一个包含 4 个节点的图,这些节点与其他节点相连。每个连接都有权重。例如:

A -> 5 -> B

A -> 3 -> C

B -> 4 -> C

B -> 3 -> D

每个节点都有相应的后向连接。但我在实现这种向后连接时遇到了问题。这是我现在拥有的算法(用文字表示):

  1. 创建节点(A、B、C、D)
  2. 将节点 A 连接到节点 B
  3. 设置连接权重
  4. 对其他节点重复 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 映射中的键,因此不要忘记覆盖其 equalshashCode 方法。

关于java - 如何在图中进行向后节点连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231451/

相关文章:

java - 属性 'profile' 不允许出现在元素 'beans:bean' 中

javascript - 在 zapier 中发送请求数据时出现空指针异常

在依赖图上搜索不相交联合的算法

客户端-服务器游戏算法

java - 从 Eclipse 中的编辑器中获取选定的 Java 元素

java - 我收到以下运行时错误。请帮我找出原因

java - KafkaProducer 未生成> 1 MB 的消息到主题

algorithm - 具有彩色边缘的图形中更改次数最少的路径

c - 用于快速查询的整数 vector 散列

ruby - 解码 HMAC 签名