Представление узлов Java Graph - PullRequest
       2

Представление узлов Java Graph

0 голосов
/ 14 сентября 2011

Таким образом, я должен построить это для моего задания, где мне дают входной файл, который создает график, используя x и y координаты, такие как:

(1,3)
(4,4)
(5,10)

и т.д ... (вотввод в файл)

После этого я даю пользователю возможность выполнять DFS / BFS, где они затем вводят начальную и целевую координаты для этого.Я уже создал матрицу смежности, где мои узлы (вершины) равны A, B, C и т. Д., Но я никогда не использовал координаты, подобные этой, в качестве моих узлов.

У меня вопрос : как мне представить эти координаты как узлы на графике ... Я знаю, что матрица смежности не будет работать в этом случае, и мне нужно что-то другое (из-замаксимальный размер отсутствует), но я совершенно не понимаю, как представить эти координаты как узлы в данный момент.Может кто-нибудь мне помочь?

Дополнительная информация [из комментариев]:
каждая пара представляет ребро между ними, поэтому (1,3) имеет ребро / связано с (4, 4) и (5,10) будут подключены к следующей паре, указанной ниже (которую я не записал), мы можем предположить, что ввод правильный / четный в парах

1 Ответ

0 голосов
/ 14 сентября 2011

Вам необходимо отобразить ваши координаты, каждая координата будет иметь целое число, представляющее ее, и целые числа должны быть непрерывными [0,1,2, ..., n-1], где n - это количество координат.

Сделайте это, сначала выполнив итерацию по координатам, и вставьте каждую новую координату на карту с новым целым числом.
Таким образом, вы можете создать матрицу смежности, потому что вы точно знаете, насколько велик ваш граф [помните, вы его посчитали, поэтому вы только что нашли количество узлов, которое является размером матрицы!]

Теперь вы можете легко создать матрицу, называя каждую координату целым числом. Ребро в матрице, как всегда, если ребро есть: p1, p2, вы должны установить matrix[map.get(p1)][map.get(p2)] = 1

...