#include "stack.h" bool InitStack(Stack * s) { *s = NULL; return true; } bool DestroyStack(Stack * s) { Stack p; while (*s) { p = *s; *s = (*s)->next; free (p); } return true; } bool Push(Stack * s, ElemType n) { Stack p = (stack *) malloc (sizeof(stack)); if (!p) { fprintf(stderr,"No enough memory\n"); return false; } p->data = n; p->next = *s; *s = p; return true; } bool Pop(Stack * s, ElemType * n) { if (!*s) { fprintf(stderr,"No element in stack!\n"); return false; } *n = (*s)->data; Stack p = *s; *s = (*s)->next; free(p); return true; } ElemType GetTop(Stack * s) { if (*s) return (*s)->data; return -1; } bool StackIsEmpty (Stack * s) { if (!*s) return true; return false; }