Electronic Arts Interview Question
SDE-3sCountry: United States
Interview Type: Phone Interview
DFS:
package main
import (
"fmt"
sh "interviews/rest/shared"
)
func initGraph() *sh.Graph {
node5 := &sh.Node{
Data: 5,
}
node4 := &sh.Node{
Data: 4,
}
node3 := &sh.Node{
Data: 3,
}
node2 := &sh.Node{
Data: 2,
}
node1 := &sh.Node{
Data: 1,
}
node1.Adjacency_list = []*sh.Node{node2}
node2.Adjacency_list = []*sh.Node{node4, node3}
node3.Adjacency_list = []*sh.Node{node5}
node4.Adjacency_list = []*sh.Node{node5}
node5.Adjacency_list = []*sh.Node{node3}
g := &sh.Graph{
Nodes: []*sh.Node{node1},
}
return g
}
var visited map[*sh.Node]bool
func visit(r *sh.Node) bool {
visited[r] = true
for _, ch := range r.Adjacency_list {
if ch == r {
continue
}
if visited[ch] {
return true
} else {
if visit(ch) {
fmt.Println(ch.Data)
return true
}
}
}
return false
}
func main() {
root := initGraph()
visited = make(map[*sh.Node]bool)
fmt.Println(visit(root.Nodes[0]))
}
- dmitry.labutin April 28, 2017