MCPcopy Create free account
hub / github.com/0xAX/go-algorithms / breadthFirstSearch

Function breadthFirstSearch

searching/breadthFirstSearch.go:23–48  ·  view source on GitHub ↗
(start, end int, nodes []int, edges [][]bool)

Source from the content-addressed store, hash-verified

21}
22
23func breadthFirstSearch(start, end int, nodes []int, edges [][]bool) bool {
24 var route []int
25 var queue []int
26 startIdx := getIdx(start, nodes)
27 queue = append(queue, startIdx)
28 for len(queue) > 0 {
29 now := queue[0]
30 route = append(route, nodes[now])
31 if len(queue) > 1 {
32 queue = queue[1:]
33 } else {
34 queue = queue[0:]
35 }
36 for i := 0; i < len(edges[now]); i++ {
37 if edges[now][i] && notExist(i, queue) {
38 queue = append(queue, i)
39 }
40 edges[now][i] = false
41 edges[i][now] = false
42 }
43 if route[len(route)-1] == end {
44 return true
45 }
46 }
47 return false
48}
49
50func main() {
51 nodes := []int{

Callers 1

mainFunction · 0.85

Calls 2

getIdxFunction · 0.70
notExistFunction · 0.70

Tested by

no test coverage detected