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:
-
Recorrido en profundidad (DFS)
- Pre-orden (raíz → izquierdo → derecho)
- In-orden (izquierdo → raíz → derecho)
- Post-orden (izquierdo → derecho → raíz)
-
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)
}
}
}