typedef struct stack_st { int num; char **data; int sorted; int num_alloc; int (*comp)(const void *, const void *); } _STACK; struct buf_mem_st { size_t length; char *data; size_t max; }; typedef struct buf_mem_st BUF_MEM; typedef long int time_t; // Stack functions int sk_num(const _STACK *); void *sk_value(const _STACK *, int); void *sk_set(_STACK *, int, void *); _STACK *sk_new(int (*cmp)(const void *, const void *)); _STACK *sk_new_null(void); void sk_free(_STACK *); void sk_pop_free(_STACK *st, void (*func)(void *)); int sk_insert(_STACK *sk, void *data, int where); void *sk_delete(_STACK *st, int loc); void *sk_delete_ptr(_STACK *st, void *p); int sk_find(_STACK *st, void *data); int sk_find_ex(_STACK *st, void *data); int sk_push(_STACK *st, void *data); int sk_unshift(_STACK *st, void *data); void *sk_shift(_STACK *st); void *sk_pop(_STACK *st); void sk_zero(_STACK *st); int (*sk_set_cmp_func(_STACK *sk, int (*c)(const void *, const void *)))(const void *, const void *); _STACK *sk_dup(_STACK *st); void sk_sort(_STACK *st); int sk_is_sorted(const _STACK *st);