void recursiveTraversal(pfNode * node) { /* Do something with node */ ... /* Traverse all of node's children */ int i; if (node->isOfType(pfGroup::getClassType())) { pfGroup *group = (pfGroup *)node; for (i=0; i < group->getNumChildren(); i++) recursiveTraversal(group->getChild(i)); } }