You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
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);
|