Прямой (pre-order) обход бинарного дерева:
void preorder(Node* n)
{ if(!n) return;
print(n->value);
preorder(n->left);
preorder(n->right);
}
(+ (* 3 (- 7 4)) 6)
// используется в функциональных языках (Scheme)
Симметричный (in-order) обход бинарного дерева:
void inorder(Node* n)
{ if(!n) return;
inorder(n->left);
print(n->value);
inorder(n->right);
}
((3 * (7 - 4)) + 6)
Обратный (post-order) обход бинарного дерева:
void postorder(Node* n)
{ if(!n) return;
postorder(n->left);
postorder(n->right);
print(n->value);
}
((3 (7 4 -) *) 6 +)
3 7 4 - * 6 +
// обратная польская (бесскобочная) запись, используется в языке Forth и некоторых калькуляторах