Junior — Middle
Kādiem veidiem var veikt dažādu datu koku apmeklēšanu?
sobes.tech AI
Atbilde no AI
Datu koku apmeklēšana parasti tiek veikta ar šādām metodēm:
-
Dziļuma pirmā apmeklēšana (DFS)
- Pre-order (sakne → kreisais → labais)
- In-order (kreisais → sakne → labais)
- Post-order (kreisais → labais → sakne)
-
Plašuma pirmā apmeklēšana (BFS)
- Apmeklējot mezglus pa līmeņiem, sākot ar sakni
Go valodā to var realizēt rekursīvi vai ar steku/rindu. Piemēram, dziļuma pirmā apmeklēšana (in-order) bināram kokam:
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
Plašuma pirmā apmeklēšanai parasti tiek izmantota rinda:
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)
}
}
}