Ejemplo n.º 1
0
int main(int argc, char *argv[])
{
	int *i;
	int j, val;
	int max = 0;
	int log_level = 0;
	cp_heap *heap;

	if (argc > 1) max = atoi(argv[1]);
	if (max == 0) max = 10;
	
	heap = cp_heap_create(cp_hash_compare_int);

	srand(time(NULL));

	for (j = 0; j < max; j++)
	{
		val = rand();
		cp_heap_push(heap, intdup(&val));
	}
		
	while ((i = cp_heap_pop(heap)))
	{
		printf("%d\n", *i);
		max--;
		if (max == 50) cp_heap_contract(heap);
		free(i);
	}

	cp_heap_contract(heap);

	cp_heap_destroy(heap);

	return 0;
}
Ejemplo n.º 2
0
filter_chain *add_to_filter_chain(filter_t *filter, filter_chain *chain) {
    assert(filter);
    
    filter_chain *result = chain;
    if (result == NULL) {
        result = cp_heap_create((cp_compare_fn) filter_compare);
    }
    assert(result);
    cp_heap_push(result, filter);

    return result;
}