If I understood the question correctly, it would be a statement of the problem
n- , node, , node , . node node, node node.
, TraverseUp() - , PostOrderTraversal(), . A . :
TraverseUp(Array *A, Node *n) {
if (!n) return;
A.add(n)
Node *p = n.parent();
if (!p) return;
foreach(Node *c in p.children) {
if (c == n) continue;
PostOrderTraversal(A, c);
}
TraverseUp(A, p);
}
PostOrderTraversal(Array *A, Node *n) {
if (!n) return;
foreach(Node *c in n.children) {
PostOrderTraversal(A, c);
A.add(c);
}
}