void parenPrint(const Tree& T, const Position& v) {
cout << v.element(); // print node's element
if (T.isInternal(v)) {
PositionIterator children = T.children(v);
cout << "( "; // open
parenPrint(T, children.next()); // visit the first child
while (children.hasNext()) { // for each other child
cout << ", "; // print separator
parenPrint(T, children.next()); // visit the next child
}
cout << " )"; // close
}
}