/* This program uses code from "Algorithms in C, Third Edition,"
 *               by Robert Sedgewick, Addison-Wesley, 1998.
 */


#ifndef CSE_2320_STACKS_H
#define	CSE_2320_STACKS_H


typedef struct stack_struct * Stack;

// For the array-based implementation, calling newStack with no arguments
// returns a stack with max_size = 1000. For the list-based representation,
// there is no max_size.
Stack newStack();
Stack newStack1(int max_size);
void destroyStack(Stack stack);
void push(Stack stack, void * content);
void * pop(Stack stack);
int stackEmpty(Stack stack);

int popInt(Stack stack);
void pushInt(Stack stack, int value);
void printIntStack(Stack stack);

#endif	/* CSE_2320_STACKS_H */

