typedef struct stack *Stack; /** Creates a new empty stack */ Stack StackNew(void); /** Frees memory allocated to the stack */ void StackFree(Stack s); /** Adds an item to the top of the stack */ void StackPush(Stack s, int item); /** Removes the item at the top of the stack Assumes that the stack is not empty */ int StackPop(Stack s);