Как реализовать матрицу смежности в Java, производящих циклы Гамильтона - PullRequest
5 голосов
/ 25 марта 2010

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

1 Ответ

5 голосов
/ 25 марта 2010

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

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 индексов для вершин?
  • и т.д ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...