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; }
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; } }
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; }