Junior — Middle
Akými metódami je možné prechádzať rôzne dátové stromy?
sobes.tech AI
Odpoveď od AI
Prechádzanie dátových stromov sa zvyčajne vykonáva nasledujúcimi metódami:
-
Hlboké prehľadávanie (DFS)
- Pre-order (koreň → ľavý → pravý)
- In-order (ľavý → koreň → pravý)
- Post-order (ľavý → pravý → koreň)
-
Široké prehľadávanie (BFS)
- Návšteva uzlov podľa úrovní, začínajúc od koreňa
V jazyku Go je možné to implementovať rekurzívne alebo pomocou zásobníka/fronty. Napríklad, hlboké prehľadávanie (in-order) pre binárny strom:
func inOrder(node *Node) {
if node == nil {
return
}
inOrder(node.Left)
fmt.Println(node.Value)
inOrder(node.Right)
}
Pre prehľadávanie na šírku sa zvyčajne používa fronta:
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)
}
}
}