/* File: stack.h

   Interface for a LIFO stack which is derived
   from our list ADT
*/

#ifndef _stack_h
#define _stack_h

#include "list5.h"

class Stack : private List {  /* private derivation of List */

public:
   Stack() ;		/* default constructor */
   ~Stack() ;		/* destructor */
   void Push(data) ;	/* put data on top of the stack */
   data Pop() ;		/* pop data off top of stack */
   data Top() ;		/* return top of the stack */
   int IsEmpty() ;	/* Is the stack empty? 1=Yes, 0=No */
   int Depth() ;	/* Number of items in the stack */
   void Print() ;	/* allow access to Print from List */
} ;

#endif
