// Class Stack: // Stack container. // Stack should be able to push, pop, check if is empty, // full, check size, the topmost element on the stack, push // pop and clear. class Stack { private: //NOTE: You will be required to keep track of the size of the stack. unsigned int Size; DLinkedList List; public: Stack(); Stack(const Stack& source); Stack& operator=(const Stack& RHS); // should return false if operation is not successful, bool push(const ElementD& val); // should return false if operation is not successful, // if successful set reference parameter to item poped bool pop(ElementD& val); // return element at top bool top(ElementD& val); // check if full bool isFull() const; // check if empty bool isEmpty() const; // report size unsigned int size() const; // clear stack void clear(); // compare Sizes - return if equal bool operator==(const Stack& RHS) const; // compare Sizes - return if not equal bool operator!=(const Stack& RHS) const; // compare Sizes - return if lhs size greater // than or equal to rhs size bool operator>=(const Stack& RHS) const; // compare Sizes - return if lhs size smaller // than or equal to rhs size bool operator<=(const Stack& RHS) const; // compare Sizes - return if lhs size smaller // than rhs size bool operator<(const Stack& RHS) const; // compare Sizes - return if lhs size greater // than rhs size bool operator>(const Stack& RHS) const; //leave this in friend class Tester; ~Stack(); };