static void add_int_to_skiplist(apr_skiplist *list, int n){ int* a = apr_skiplist_alloc(list, sizeof(int)); *a = n; apr_skiplist_insert(list, a); } static int comp(void *a, void *b){ return *((int*) a) - *((int*) b); } static int compk(void *a, void *b){ return comp(a, b); } static void skiplist_test(apr_pool_t* p){ int i = 0; apr_skiplist * list = NULL; apr_skiplist_init(&list, p); apr_skiplist_set_compare(list, comp, compk); /* insert 10 objects */ for(i = 0; i < 10; ++i){ add_int_to_skiplist(list, i); } apr_skiplist_print_struct(list, "_"); /* remove all objects */ while(apr_skiplist_pop(list, NULL)){ } apr_skiplist_print_struct(list, "_"); /* insert 10 objects again */ for(i = 0; i < 10; ++i){ add_int_to_skiplist(list, i); apr_skiplist_print_struct(list, "_"); } }