Junior — Middle
Ce metode pot fi utilizate pentru a parcurge diferite arbori de date?
sobes.tech AI
Răspuns de la AI
Parcurgerea arborilor de date se realizează de obicei prin următoarele metode:
-
Parcurgerea în adâncime (DFS)
- Pre-ordine (rădăcină → stânga → dreapta)
- In-ordine (stânga → rădăcină → dreapta)
- Post-ordine (stânga → dreapta → rădăcină)
-
Parcurgerea în lățime (BFS)
- Vizitarea nodurilor pe niveluri, începând cu rădăcina
În Go, acest lucru poate fi implementat recursiv sau folosind o stivă/coadă. De exemplu, parcurgerea în adâncime (in-ordine) pentru un copac binar:
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
Pentru parcurgerea în lățime, se folosește de obicei o coadă:
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)
}
}
}