#include #include #include typedef struct{ int* data; int top; int size; } Stack; void push(Stack *s, int element); int pop(Stack *s); void destroy(Stack *s); void init(Stack *s); bool isEmpty(Stack *s); int main() { return 0; } void push(Stack *s, int element) { if(s->top == s->size -1) { int *temp = (int*)malloc(sizeof(int) * s->size * 2); if (temp == NULL) { printf("unable to allocate"); return; } int i=0; for(i = 0; i<= s ->top; i++) { temp[i] = s->data[i]; } free(s->data); s-> size *=2; } s-> data[++s->top] = element; } int pop(Stack *s) { if(s->top == -1) { return -1; } else { return s->data[s->top--]; }; } void destroy(Stack *s) { int i; for(i= s->top; i>=0; i--) { free(s-> data); } } void init(Stack *s) { Stack *newStack = (int*)malloc(sizeof(int)*2); newStack->top = -1; *s =newStack; } bool isEmpty(Stack *s) { if(s->top == -1) { return true; } else { return false; } }