Exemplo n.º 1
0
static void traverse_inorder(BTREE_NODE_p_t node, BTREE_VISIT_PROC_p_t visit_proc){
    if(node!=NULL){
        traverse_inorder(node->left, visit_proc);
        visit_proc(node->data);
        traverse_inorder(node->right, visit_proc);
    }
}
Exemplo n.º 2
0
Arquivo: tree.c Projeto: pinne/algodat
void traverse_inorder(struct tree *node)
{
	if (node == NULL)
		return;
	traverse_inorder(node->left);
	print_node(node);
	traverse_inorder(node->right);
#ifndef TWO_DIMENSION
	traverse_inorder(node->up);
	traverse_inorder(node->down);
#endif
}
Exemplo n.º 3
0
int main() {
    auto tree = BinTree<int>();
    std::cout << "size: " << tree.size() << '\n';
    std:: cout<< "maxDepth: " << tree.maxDepth() << '\n';
    std::cout << "traverse in order: ";
    tree.traverse_inorder();
    std:: cout << '\n';

    tree.insert(2);
    tree.insert(1);
    tree.insert(3);

    std::cout << tree.root->value << '\n';
    std::cout << tree.root->left->value << '\n';
    std::cout << tree.root->right->value << '\n';
    std::cout << "lookup 1: " << tree.lookup(1) << '\n';
    std::cout << "lookup 7: " << tree.lookup(7) << '\n';
    std::cout << "size: " << tree.size() << '\n';
    std:: cout<< "maxDepth: " << tree.maxDepth() << '\n';
    tree.insert(5);
    tree.insert(7);
    std::cout << "size: " << tree.size() << '\n';
    std::cout << "maxDepth: " << tree.maxDepth() << '\n';

    std::cout << "traverse in order: ";
    tree.traverse_inorder();
    std:: cout << '\n';

    std::cout << "hasPathSum\n";
    std::cout << tree.hasPathSum(3) << '\n';
    std::cout << tree.hasPathSum(4) << '\n';
    std::cout << tree.hasPathSum(17) << '\n';

    tree.printPaths();
    tree.insert(4);
    std::cout << "after insert(4):\n";
    tree.printPaths();

    std::cout << "-------------\n";
    std::cout << "traverse in order: ";
    tree.traverse_inorder();
    std:: cout << '\n';
    tree.mirror();
    std::cout << "traverse in order: ";
    tree.traverse_inorder();
    std:: cout << '\n';

}
Exemplo n.º 4
0
BTREE_ID_t BTREE_traverse_tree(BTREE_ID_t tree,BTREE_TRAVERSE_ORDER_e_t order,BTREE_VISIT_PROC_p_t visit_proc){
    
    switch (order) {
        case BTREE_PREORDER:
            traverse_preorder(tree->root, visit_proc);
            break;
            case BTREE_INORDER:
            traverse_inorder(tree->root, visit_proc);
            break;
            case BTREE_POSTORDER:
            traverse_postorder(tree->root,visit_proc);
            break;
            
        default:
            CDA_ASSERT(CDA_FALSE);
            break;
    }
    
    return tree;
}