Junior — Middle
Farklı veri ağaçlarını dolaşmak için hangi yöntemler kullanılabilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Veri ağaçlarının gezinmesi genellikle aşağıdaki yöntemlerle yapılır:
-
Derinlik öncelikli arama (DFS)
- Pre-order (kök → sol → sağ)
- In-order (sol → kök → sağ)
- Post-order (sol → sağ → kök)
-
Genişlik öncelikli arama (BFS)
- Düğümleri seviyelerine göre ziyaret etme, kök seviyesinden başlar
Go dilinde, bu işlemi özyinelemeli veya yığın/kuyruk kullanarak gerçekleştirebilirsiniz. Örneğin, ikili ağaç için derinlik öncelikli arama (in-order):
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
Genişlik öncelikli arama için genellikle bir kuyruk kullanılır:
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)
}
}
}