// queue-stack.h // header files for the Stack and Queue Classes #ifndef queue_stack_h #define queue_stack_h class Node { friend class Stack; friend class Queue; public: Node(int); private: int data; Node* nextPtr; }; class Stack { public: Stack(); ~Stack(); int isEmpty() const; void insert(const int); int remove(int &value); void print() const; protected: Node* outPtr; Node* getNewNode(const int); void initSingleEle(const Node* const ele); // used to "reset" to single element stack void initNoElements(); // used to "reset" to no elements }; class Queue : public Stack { public: Queue(); ~Queue(); void insert(const int); protected: Node* inPtr; void initSingleEle(const Node* const ele); void initNoElements(); }; #endif