Пример #1
0
static void Node_free(Node *n) {
    if(n != NULL) {
        int i;
        for(i = 0; i < NUM_CHARS; i++)
            if(n->nodes[i])
                Node_free(n->nodes[i]);
        free(n);
    }
}
Пример #2
0
static Node *Node_create() {
    Node *n = malloc(sizeof(*n));
    check(n != NULL, "Out of memory");
    memset(n, 0, sizeof(*n));
    n->occupied = 0;

    return n;

error:
    Node_free(n);
    return NULL;
}
Пример #3
0
void Trie_free_traverse(struct node* start) {

	assert(start);

	struct node* next;
	int i, num;

	num = Node_childno(start);

	for (i = 0; i < num; i++) {
		next = start -> child[i];
		Trie_free_traverse(next);
	}

	Node_free(start);

}
Пример #4
0
void FileIndex_free(FileIndex *fi) {
    if(fi) {
        Node_free(fi->trie);
        free(fi);
    }
}