Esempio n. 1
0
void kdtree::recursive_destroy(kdnode * node) {
	if (node->get_right() != nullptr) {
		recursive_destroy(node->get_right());
	}
	
	if (node->get_left() != nullptr) {
		recursive_destroy(node->get_left());
	}

	delete node;
	node = nullptr;
}
Esempio n. 2
0
// Recursively destroys the radix tree
static void recursive_destroy(radix_node *n) {
    radix_node *child;
    if (n->edges[0]) {
        radix_leaf *leaf = n->edges[0];
        free(leaf->key);
        free(leaf);
    }
    for (int i=1; i < 256; i++) {
        child = (radix_node*)n->edges[i];
        if (!child) continue;
        recursive_destroy(child);
        free(child);
    }
}
Esempio n. 3
0
kdtree::~kdtree(void) {
	if (root != nullptr) {
		recursive_destroy(root);
	}
}
Esempio n. 4
0
/**
 * Destroys the tree
 * @arg tree The tree to destroy
 * @return 0 on success
 */
int radix_destroy(radix_tree *tree) {
    recursive_destroy(&tree->root);
    return 0;
}