MCPcopy Index your code
hub / github.com/TheAlgorithms/Go / findAllCyclesHelper

Method findAllCyclesHelper

graph/cycle.go:90–112  ·  view source on GitHub ↗
(current int, all, visiting, visited map[int]struct{})

Source from the content-addressed store, hash-verified

88}
89
90func (g Graph) findAllCyclesHelper(current int, all, visiting, visited map[int]struct{}) (bool, [][]int) {
91 parents := [][]int{}
92
93 delete(all, current)
94 visiting[current] = struct{}{}
95
96 neighbors := g.edges[current]
97 for v := range neighbors {
98 if _, ok := visited[v]; ok {
99 continue
100 } else if _, ok := visiting[v]; ok {
101 parents = append(parents, []int{v, current})
102 return true, parents
103 } else if ok, savedParents := g.findAllCyclesHelper(v, all, visiting, visited); ok {
104 parents = append(parents, savedParents...)
105 parents = append(parents, []int{v, current})
106 return true, parents
107 }
108 }
109 delete(visiting, current)
110 visited[current] = struct{}{}
111 return false, parents
112}

Callers 1

FindAllCyclesMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected