I am preparing for a test and have answered some questions dealing with stacks and queues the teacher has provided as samples. Could someone check over my work?

1) Implement Stack.Code:// stack.h – complete header file for Stack ADT #include <iostream> using namespace std; class StackFull { /* Empty Exception Class */ }; class StackEmpty { /* Empty Exception Class */ }; class Stack // An array implementation of Stack ADT for storing integers { private: int* ptr; // Holds address of dynamically-allocated integer array int top; // Array index of top-most integer on the stack int size; // Maximum number of integers that may be stored in the stack public: Stack(int num); // Dynamically allocate 1-D array of integers of size num // and configure empty stack ~Stack(); // Deallocates stack array void Push(int n); // Add integer n to the top of the stack if not full // Otherwise, throw StackFull exception int Pop(); // Removes top integer from stack AND returns value to // client; throws StackEmpty exception if stack is empty void MakeEmpty(); // Return stack to empty but usable state bool IsFull() const; // Return true if stack is full; otherwise return false bool IsEmpty() const; // Return true if stack is empty; otherwise return false int Capacity() const; // Returns the maximum number of integers that may be // stored in Stack object }; // End Class Stack

2) Implement Push methodCode:Stack::Stack(int num) { ptr=new int[num]; top=0; size=num; }

3) Implement IsEmptyCode:void Stack::Push(int n) { if(IsEmpty() ) throw StackFull(); else { ptr[top]=n; top++; } }

4) Implement PopCode:bool Stack::IsEmpty() const { return (top == 0); }

5) Implement DesctructorCode:int Stack::Pop() { if (IsEmpty()) throw StackEmpty(); else { int temp=ptr[top]; top--; return temp; } }

6) Implement CapacityCode:Stack::~Stack() { MakeEmpty(); }

7) Implement IsFullCode:int Stack::Capacity() const { return size; }

Code:bool Stack::IsFull() const { return (top == size); }