#include #include #include "sqstack.h" sqstack *st_create(void) { sqstack *st; st = malloc(sizeof(*st)); if (NULL == st) return NULL; st->top = -1; return st; } int st_isempty(sqstack *st) { return (-1 == st->top); } int st_push(sqstack *st, type *data) { if (SIZE - 1 == st->top) return -1; st->data[++st->top] = *data; return 0; } /* 取出栈顶元素 */ int st_pop(sqstack *st, type *data) { if (st_isempty(st)) return -1; *data = st->data[st->top--]; return 0; } /* 查看栈顶元素 */ int st_top(sqstack *st, type *data) { if (st_isempty(st)) return -1; *data = st->data[st->top]; return 0; } void st_travel(sqstack *st) { if (st_isempty(st)) return; int i; for (i = 0; i <= st->top; i++) printf("%d ", st->data[i]); printf("\n"); } void st_destroy(sqstack *st) { free(st); }