Concept Flow - Tree Traversal Inorder Left Root Right
Start at root node
Traverse left subtree
Visit current node (root)
Traverse right subtree
End
Inorder traversal visits nodes by first going left, then the root, then right.
func inorder(node *Node) {
if node == nil {
return
}
inorder(node.Left)
fmt.Print(node.Value, " ")
inorder(node.Right)
}| Step | Operation | Node Visited | Left/Right | Tree State (Inorder Visited) |
|---|---|---|---|---|
| 1 | Start at root | 10 | root | [] |
| 2 | Traverse left subtree | 5 | left | [] |
| 3 | Traverse left subtree | 3 | left | [] |
| 4 | Traverse left subtree | nil | left | [] |
| 5 | Visit node | 3 | root | [3] |
| 6 | Traverse right subtree | nil | right | [3] |
| 7 | Return to parent | 5 | root | [3] |
| 8 | Visit node | 5 | root | [3,5] |
| 9 | Traverse right subtree | 7 | right | [3,5] |
| 10 | Traverse left subtree | nil | left | [3,5] |
| 11 | Visit node | 7 | root | [3,5,7] |
| 12 | Traverse right subtree | nil | right | [3,5,7] |
| 13 | Return to parent | 10 | root | [3,5,7] |
| 14 | Visit node | 10 | root | [3,5,7,10] |
| 15 | Traverse right subtree | 15 | right | [3,5,7,10] |
| 16 | Traverse left subtree | 13 | left | [3,5,7,10] |
| 17 | Traverse left subtree | nil | left | [3,5,7,10] |
| 18 | Visit node | 13 | root | [3,5,7,10,13] |
| 19 | Traverse right subtree | nil | right | [3,5,7,10,13] |
| 20 | Return to parent | 15 | root | [3,5,7,10,13] |
| 21 | Visit node | 15 | root | [3,5,7,10,13,15] |
| 22 | Traverse right subtree | 18 | right | [3,5,7,10,13,15] |
| 23 | Traverse left subtree | nil | left | [3,5,7,10,13,15] |
| 24 | Visit node | 18 | root | [3,5,7,10,13,15,18] |
| 25 | Traverse right subtree | nil | right | [3,5,7,10,13,15,18] |
| 26 | End | nil | none | [3,5,7,10,13,15,18] |
| Variable | Start | After Step 5 | After Step 8 | After Step 11 | After Step 14 | After Step 18 | After Step 21 | After Step 24 | Final |
|---|---|---|---|---|---|---|---|---|---|
| Current Node | 10 | 3 | 5 | 7 | 10 | 13 | 15 | 18 | nil |
| Inorder Visited | [] | [3] | [3,5] | [3,5,7] | [3,5,7,10] | [3,5,7,10,13] | [3,5,7,10,13,15] | [3,5,7,10,13,15,18] | [3,5,7,10,13,15,18] |
Inorder Tree Traversal: - Visit left subtree first - Then visit root node - Then visit right subtree - Recursive approach: call inorder(left), print root, call inorder(right) - Result: nodes visited in ascending order for BST