#include typedef int bool; typedef int element; #define MAX 20 #define EMPTY -1 struct stackinfo { element s[MAX]; int top; }; typedef struct stackinfo stack; stack *create() { stack *s = (stack *)malloc(sizeof(stack)); s->top = EMPTY; return s; } bool isempty(stack *s) { return s->top == EMPTY; } bool isfull(stack *s) { return s->top == MAX-1; } void push(element data, stack *stk) { stk->s[++stk->top] = data; } void pop(stack *stk) { stk->top--; } element peek(stack *stk) { return stk->s[stk->top]; } void destroy(stack *s) { free(s); } int main() { stack *x; x = create(); push(2, x); push(3, x); printf("%d\n", peek(x)); pop(x); printf("%d\n", peek(x)); pop(x); destroy(x); }