gpt4 book ai didi

Java:如何表示图形?

转载 作者:行者123 更新时间:2023-12-01 05:31:05 24 4
gpt4 key购买 nike

我正在实现一些算法来自学图形以及如何使用它们。您建议用 Java 实现这一点的最佳方法是什么?我在想这样的事情:

public class Vertex {

private ArrayList<Vertex> outnodes; //Adjacency list. if I wanted to support edge weight, this would be a hash map.

//methods to manipulate outnodes
}

public class Graph {
private ArrayList<Vertex> nodes;
//algorithms on graphs
}

但基本上这只是我编造的。有更好的办法吗?

此外,我希望它能够支持普通图的变体,例如有向图、加权边、多重图等。

最佳答案

每个节点都有唯一的名称,并且知道它连接到谁。连接列表允许节点连接到任意数量的其他节点。

public class Node {
public String name;
public List<Edge> connections;
}

每个连接都是有向的,有开始和结束,并且是加权的。

public class Edge {
public Node start;
public Node end;
public double weight;
}

图表只是节点的集合。而不是List<Node>考虑Map<String, Node>用于按名称快速查找。

public class Graph {
List<Node> nodes;
}

关于Java:如何表示图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com