Junior — Middle
What methods can be used to traverse different data trees?
sobes.tech AI
Answer from AI
Tree traversal methods are usually performed using the following techniques:
-
Depth-First Search (DFS)
- Pre-order (root → left → right)
- In-order (left → root → right)
- Post-order (left → right → root)
-
Breadth-First Search (BFS)
- Visiting nodes level by level, starting from the root
In Go, this can be implemented recursively or using a stack/queue. For example, in-order traversal for a binary tree:
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
For breadth-first traversal, a queue is usually used:
func bfs(root *Node) {
if root == nil {
return
}
queue := []*Node{root}
for len(queue) > 0 {
current := queue[0]
queue = queue[1:]
fmt.Println(current.Value)
if current.Left != nil {
queue = append(queue, current.Left)
}
if current.Right != nil {
queue = append(queue, current.Right)
}
}
}