Exemple #1
0
btree_t *
btree_append_node(btree_t *root,
             int key, void *data) 
{
    btree_t *new_node;
    btree_t *node, **prevp;

    prevp = &root;

    while (*prevp) {
        node = *prevp;
		if(key == node->key){
			printf("key exists %d\n", node->key);
			return root;
		}
        prevp = key < node->key ?
                &node->left : &node->right;
    }
	
    new_node = btree_new();

    if (!new_node) {
        printf("malloc() call error in %s\n", __FUNCTION__);
        return NULL;
    }

    new_node->key = key;
	new_node->data = data;	
	
    *prevp = new_node;
    //root->size++;
    return root;
}
Exemple #2
0
int test_tree(){
  btree *tree;
  btree_node *root;
  
  tree = btree_new();
  root = btree_node_newnum(5);
  
  btree_set_root(tree, root);
  
  if(tree->root->num == 5){
    return 1;
  } else {
    return 0;
  }
}
Exemple #3
0
int run_screen() {
	print_header();

	int order;

	printf("  Um nó de uma B-Tree de ordem T deve ter no mínimo T-1\n" \
	       "               e no máximo 2*T filhos\n");
	printf("\n");
	printf(" Digite a ordem T da sua B-Tree: ");
	scanf("%d%*c", &order);

	// Única criação de uma B-Tree
	tree = btree_new(order);
	snprintf(msg, MSG_LEN, " B-Tree de ordem %d alocada.", order);

	return RUNNING;
}