首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图的Java代码及其需求

图的Java代码及其需求
EN

Stack Overflow用户
提问于 2013-07-15 20:46:16
回答 3查看 1.4K关注 0票数 0

我需要写一个图,一些节点v={1,2,3,4,5,6,7}和边E={(1-2),(2-3),(3,4),(4-7),(3-6),(2-6),(5-6),(1-5)},还有一些要求D=(s,d)={(1-3),(2-3),(4-5)。(7-7),(6-4),(2-7)},它们是具有确切源作为小型网络的目的地的某些路径。我怎么用Java写这段代码呢?有谁能帮帮我吗?

EN

回答 3

Stack Overflow用户

发布于 2013-07-15 20:50:38

提取名词,你会发现你需要一个顶点/节点类,一个边缘类和一个需求类。这只是你解决方案的开始。您还将拥有一个由节点列表、边列表和需求列表组成的Graph或Network类。然后,您需要决定将使用节点、边和要求的处理方法放在哪里。

代码语言:javascript
运行
复制
> A Node will consist of an integer. 
> An Edge will consist of two Nodes 
> and so on

下面是一个例子

代码语言:javascript
运行
复制
public class Node {
   private int nodeNumber;
}
票数 1
EN

Stack Overflow用户

发布于 2013-07-15 20:52:50

如果你不想重新发明weel,你可以研究一下JGraphT。有一些可用的examples可以让你了解如何使用它。

票数 0
EN

Stack Overflow用户

发布于 2013-07-15 20:57:40

作为起点,我可以建议您使用以下类结构:

代码语言:javascript
运行
复制
class Vertex{
    String id;
    List<Edge> edges;

    public Vertex(String id){
        this.id = id;
        edges = new ArrayList<Edge>();
    }

    void addEdge(Edge e){
        edges.add(e);
    }
}

class Edge{
   Vertex fromVertex;
   Vertex toVertex;

   Edge(Vertex from, Vertex to){
       this.fromVertex = from;
       this.toVertex = to;
   }
}

等等。

如果您考虑不实现自己的图形并使用某个库中的图形,请看一下这个问题:

Good Java graph algorithm library?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17654609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档