Другими словами, мне интересно, существует ли известный алгоритм для нахождения наименьшего числа ходов между узлами для перехода от одного к другому. Например, я мог бы иметь дерево какЕсть ли известный алгоритм для нахождения кратчайшего расстояния между узлами с одинаковым расстоянием между каждой парой?
A - B - C - D
\ /\
E - F - G
и я хочу, кратчайший путь от A
к G
. Это будет либо A->B->C->G
, либо A->E->F->F
.
Чтобы поместить это в более конкретном плане, у меня есть
var nodes = new List<Node>
где
class Node
{
// ... properties
List<Node> Neighbors;
}
и дал некоторые Node start, end;
в nodes
Я хочу, чтобы найти кратчайший путь от start
к end
.
Я знаю, что я мог бы использовать алгоритм Джикстры с расстоянием 1
между каждым узлом, но я считаю, что для этого случая есть лучший способ?
Нет. Джикстра - лучшая. – jdweng