Генерация числа ребер между двумя узлами - PullRequest
0 голосов
/ 22 февраля 2012

Я сгенерировал это Минимальное остовное дерево, используя алгоритм Крускала, и мне сложно создавать пути между двумя узлами. Может ли кто-нибудь помочь мне с псевдокодом? Я пытался использовать Список смежности и Аджасную матрицу

Loc1 |  Loc2 |  Distance
  02 |   10  |    2.00 Km
  05 |   07  |    5.39 Km
  02 |   09  |    5.83 Km
  04 |   05  |    5.83 Km
  06 |   08  |    5.83 Km
  03 |   09  |    7.07 Km
  01 |   04  |    11.18 Km
  07 |   09  |    11.18 Km
  07 |   08  |    15.81 Km
Total Weight = 70.12 Km
----------------------------------------------------

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Если вам просто нужен какой-либо путь между двумя узлами, Breadth First Search сделает и создаст кратчайший путь (потому что это минимальное связующее дерево).

0 голосов
/ 22 февраля 2012

Покрывающие деревья по определению не имеют циклов (или циклов), поэтому в большинстве случаев между двумя узлами может быть только один путь (т. Е. Не «пути» во множественном числе).

Возможно, я непонимание вопроса.Вы пытаетесь найти, как два заданных узла связаны в вашем дереве?

Если это так, для меня это звучит как простейшая грубая сила, когда вы просто следовали бы из одной точки по ее возможным краям, возможно, путем толкания и выталкивания из стека, что было бы наихудшим O(Края) время выполнения, которое было бы тривиальным по сравнению с алгоритмом Крускала.Вам нужно что-то быстрее?

...