Stack of integers, public header file istack.h
# ifndef ISTACK_H
# define ISTACK_H
typedef struct istack *istack;
/*
 * create a new empty stack of integers
 *   RETURN VALUE: NULL if allocation fails
 */
istack istack_new (void);
/*
 * push an integer onto an existing istack
 *  RETURN VALUE: 0 upon success
 *               -1 upon failure (to allocate enough memory)
 */
int istack_push (istack, int);
/*
 * Query the number of elements on a given istack.
 * This number is the total number of istack_push operations performed
 * minus the total number of istack_pop operations performed.
 */
int istack_height (istack);
/*
 * pop the topmost integer from an istack;
 *   caveat:
 *             istack_pop (s)
 *      can only be called if
 *             istack_height (s) > 0
 */
int istack_pop (istack);
/* Free all memory associated with this stack. */
void istack_delete (istack);
# endif