Java: как представить графики?

Как насчет:

< and >

Hope это помогает?

43
задан Nick Heiner 15 November 2009 в 14:17
поделиться

4 ответа

Если вам нужны взвешенные ребра и мультиграфы, вы можете добавить еще один класс Кромка .

Я бы также рекомендовал использовать generics , чтобы можно было указать, какой подкласс Vertex и Edge в настоящее время используется. Например:

public class Graph<V extends Vertex> {
List<V> vertices;
...
}

Когда дело доходит до реализации алгоритмов графа, вы также можете определить интерфейсы для ваших классов графов, на которых могут работать алгоритмы, чтобы вы могли экспериментировать с различными реализациями фактического представления графа. . Например, простые графы, которые хорошо связаны, могут быть лучше реализованы с помощью матрицы смежности , более разреженные графы могут быть представлены списками смежности - все зависит от ...

BTW Эффективное строительство таких структур может быть довольно сложной задачей, Так что, может быть, вы могли бы дать нам более подробную информацию о том, для какой работы вы хотели бы их использовать? Для более сложных задач я бы посоветовал вам взглянуть на различные библиотеки графов Java, чтобы получить некоторое вдохновение.

16
ответ дан 26 November 2019 в 23:01
поделиться

Некоторое время назад у меня была такая же проблема, и я сделал свою реализацию. Я предлагаю вам реализовать другой класс: Edge. Затем у вершины будет список ребер.

public class Edge {
    private Node a, b;
    private directionEnum direction;     // AB, BA or both
    private int weight;
    ...
}

У меня это сработало. Но может все так просто. Вот эта библиотека, которая, возможно, поможет вам, если вы изучите ее код: http://jgrapht.sourceforge.net/

2
ответ дан 26 November 2019 в 23:01
поделиться

Взгляните на http://jung.sourceforge.net/doc/index.html библиотека графов. Вы все еще можете практиковаться в реализации собственных алгоритмов (возможно, для начала поиск в ширину или в глубину), но вам не нужно беспокоиться о создании структуры графа.

6
ответ дан 26 November 2019 в 23:01
поделиться

Я бы рекомендовал graphviz очень важно, когда вы дойдете до точки, где вы хотите визуализировать свои графики.

И его спутники: взгляните на класс GraphViz Ласло Сатмари вместе с notugly.xls .

2
ответ дан 26 November 2019 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: