Junior — Middle
Fərqli məlumat ağaclarını keçmək üçün hansı metodlar istifadə oluna bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Məlumat ağaclarının gəzilməsi adətən aşağıdakı metodlarla həyata keçirilir:
-
Dərinliklə axtarış (DFS)
- Pre-Order (kök → sol → sağ)
- In-Order (sol → kök → sağ)
- Post-Order (sol → sağ → kök)
-
En genişliklə axtarış (BFS)
- Düyünləri səviyyələrə görə ziyarət etmək, kökdən başlamaq
Go dilində, bu, rekursiv və ya yığın/kuyruk istifadə edilərək həyata keçirilə bilər. Məsələn, ikili ağac üçün dərinliklə axtarış (in-order):
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
En genişliklə axtarış üçün ümumiyyətlə kuyruk istifadə olunur:
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)
}
}
}