Junior — Middle
Ինչ մեթոդներ կարելի է օգտագործել տարբեր տվյալների ծառերը շրջելու համար?
sobes.tech AI
Պատասխան AI-ից
Տվյալների ծառերի շրջայցը սովորաբար կատարվում է հետևյալ մեթոդներով՝
-
Ամլացման խորությամբ (DFS)
- Pre-order (արմատ → ձախ → աջ)
- In-order (ձախ → արմատ → աջ)
- Post-order (ձախ → աջ → արմատ)
-
Լայնությամբ (BFS)
- Նշում է հանգույցների այցելությունը մակարդակներով, սկսած արմատից
Go լեզվում դա կարելի է իրականացնել ռեկուրսիվ կամ օգտագործելով stack/queue։ Օրինակ, խորությամբ շրջայց (in-order) բինարային ծառի համար՝
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
Լայնությամբ շրջայցի համար սովորաբար օգտագործվում է հերթ:
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)
}
}
}