1) Given a start node and a target node descriptor for any tree (not necessarily binary), check if the target is on the direct path or a child of a node on the direct path from the start node to the root of the tree. You have the methods getParent, getChildren, and match().
2) Implement a stack with the operations push, pop, peek.