// Path from s to v func (dfp *DepthFirstPaths) PathTo(v int) []int { if !dfp.HasPathTo(v) { return []int{} } path := collections.Stack{} for x := v; x != dfp.s; x = dfp.edgeTo[x] { path.Push(x) } path.Push(dfp.s) return path.ConvertToInt() }
func (sp *DijkstraShortestPaths) PathTo(v int) []weighted.Edge { if !sp.HasPathTo(v) { return nil } path := collections.Stack{} for e := sp.edgeTo[v]; e.Initialized(); e = sp.edgeTo[e.From()] { path.Push(e) } return convert(path) }