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