Sobes.tech
Junior — Middle

¿Qué métodos se pueden utilizar para recorrer diferentes árboles de datos?

sobes.tech AI

Respuesta de la IA

El recorrido de árboles de datos generalmente se realiza mediante los siguientes métodos:

  1. Recorrido en profundidad (DFS)

    • Pre-orden (raíz → izquierdo → derecho)
    • In-orden (izquierdo → raíz → derecho)
    • Post-orden (izquierdo → derecho → raíz)
  2. Recorrido en anchura (BFS)

    • Visitar los nodos por niveles, comenzando desde la raíz

En Go, esto se puede implementar de forma recursiva o usando una pila/cola. Por ejemplo, recorrido en profundidad (in-orden) para un árbol binario:

func inOrder(node *Node) {
    if node == nil {
        return
    }
    inOrder(node.Left)
    fmt.Println(node.Value)
    inOrder(node.Right)
}

Para el recorrido en anchura, generalmente se usa una cola:

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)
        }
    }
}