Какую структуру данных мне нужно использовать для построения минимального связующего дерева в Java?
У меня есть класс Node
похож на класс Java Point
с x
а также y
координаты, которые я рисую на JPanel
, Я пытаюсь создать минимальное остовное дерево для набора таких узлов на евклидовом графе, которое я бы затем нарисовал на панели. Но я не могу понять структуру данных, которая мне понадобится для эффективного создания дерева.
Я пытался использовать LinkedLists
а также ArrayLists
реализовать алгоритм Прима, но они, кажется, усложняют ситуацию. Какую структуру данных я должен изучить для этого вместо этого?
1 ответ
Решение
График может быть представлен списком смежности. Я вообще пользуюсь Vector
создавать списки смежности. С ними очень удобно обращаться. Также используйте PriorityQueue
чтобы получить минимальную стоимость пути.