Sobes.tech
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:

  1. Derinlik öncelikli arama (DFS)

    • Pre-order (kök → sol → sağ)
    • In-order (sol → kök → sağ)
    • Post-order (sol → sağ → kök)
  2. 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)
        }
    }
}