예제 #1
0
// leftTree && rightTree && data
void postTraverse(TreeNode* root){
    if(!root){
        return;
    }
    postTraverse(root->lc);
    postTraverse(root->rc);
    printf("%c",root->element);
}
예제 #2
0
// test all the 4 traverses
void testTraverse(TreeNode* root){
    printf("Traverse data && leftTree && rightTree:\n");
    preTraverse(root);
    printf("\nTraverse leftTree && data && rightTree:\n");
    inTraverse(root);
    printf("\nTraverse leftTree && rightTree && data:\n");
    postTraverse(root);
    printf("\nTraverse by level: \n");
    levelTraverse(root);
    printf("\n");
}
예제 #3
0
파일: Node.cpp 프로젝트: ospray/OSPRay
    void Node::traverse(RenderContext &ctx, const std::string& operation)
    {
      ctx._childMTime = TimeStamp();
      bool traverseChildren = true;
      preTraverse(ctx, operation, traverseChildren);
      ctx.level++;

      if (traverseChildren) {
        for (auto &child : properties.children)
          child.second->traverse(ctx, operation);
      }

      ctx.level--;
      ctx._childMTime = childrenLastModified();
      postTraverse(ctx, operation);
    }