Как реализовать матрицу смежности в Java, производящем hamilton циклы

Я пытаюсь реализовать матрицу смежности в Java, который произведет вывод для гамильтонова цикла, который может затем быть решен с различными алгоритмами, такими как kruskurals, djikstras и 2opt подход. я знаю, что мне нужен 2-й массив, но я не знаю, где запустить. я должен смочь сохранить матрицу и применить ее к графику, который я имею, который в настоящее время является кругом с "n" узлами (иждивенец на матрице). вся справка одобрена, спасибо

5
задан alchemey89 25 March 2010 в 12:53
поделиться

1 ответ

Вот скелет, с которым можно работать:

public class Graph {
    public final int V;
    private boolean[][] hasEdge;

    public Graph(int V) {
        this.V = V;
        hasEdge = new boolean[V][V];
    }

    public void addEdge(int v1, int v2) {
        hasEdge[v1][v2] = hasEdge[v2][v1] = true;
    }
    public boolean hasEdge(int v1, int v2) {
        return hasEdge[v1][v2];
    }
}

Что можно улучшить:

  • Может быть, разрешить несколько ребер между узлами?
  • Может быть, разрешить взвешенные ребра?
  • Может быть, использовать тип Node вместо int индексов для вершин?
  • и т.д ...
5
ответ дан 14 December 2019 в 19:08
поделиться
Другие вопросы по тегам:

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