Я должен сделать алгоритм для самой длинной проблемы пути.Ocaml: Самый длинный путь
У меня есть ориентированный взвешенный граф, начальный узел, стоп-узел и число k.
Алгоритм должен сказать, существует ли на графике путь от начального узла до остановки узла с длиной не менее k.
Настоящая проблема заключается в том, что я должен использовать BFS-посещение algortihm, а не DFS. На OCAML РСПЛС использовать очереди и узел являются вставки на конец структуры:
let breadth_first_collect graph start =
let rec search visited = function
[] -> visited
| n::rest -> if List.mem n visited
then search visited rest
else search (n::visited) (rest @ (succ graph n))
(* new nodes are put into queue *)
in search [] [start];;
Кто-то может дать мне некоторые советуют, даже theorical, чтобы сделать это?