Junior — Middle
Welke methoden kunnen worden gebruikt om verschillende gegevensbomen te doorlopen?
sobes.tech AI
Antwoord van AI
Het doorlopen van gegevensbomen wordt meestal uitgevoerd met de volgende methoden:
-
Diepte-eerst zoeken (DFS)
- Pre-order (wortel → links → rechts)
- In-order (links → wortel → rechts)
- Post-order (links → rechts → wortel)
-
Breedte-eerst zoeken (BFS)
- Bezoek de knooppunten per niveau, beginnend bij de wortel
In Go kan dit recursief of met behulp van een stack/queue worden geïmplementeerd. Bijvoorbeeld, diepte-eerst zoeken (in-order) voor een binaire boom:
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
Voor breedte-eerst zoeken wordt meestal een wachtrij gebruikt:
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)
}
}
}