Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please be a original answer and copy and pasted. Here is what I have for the beginning. #include #include using namespace std; //definition of the

Please be a original answer and copy and pasted. Here is what I have for the beginning.

#include #include using namespace std; //definition of the template class stackType template class stackType { private: int maxStackSize; int stackTop; Type *list;

public: void initializeStack(); bool isFullStack() const; bool isEmptyStack() const; void push(const Type&); void pop(); Type top() const; stackType(int = 20); ~stackType(); bool operator==(const stackType&); }; template void stackType::initializeStack() { stackTop = 0; } template bool stackType::isFullStack() const { return (stackTop == maxStackSize); } template bool stackType::isEmptyStack() const { return (stackTop == 0); } template void stackType::push(const Type& newItem) { if (!isFullStack()) { list[stackTop] = newItem; stackTop++; } // end if else cout << " \tCan not add to a full stack"; } template void stackType::pop() { if (!isEmptyStack()) stackTop--; else cout << " \tCan not remove from an empty stack"; } template Type stackType::top() const { assert(stackTop != 0); return list[stackTop - 1]; } template stackType::stackType(int stackSize) { if (stackSize <= 0) { cout << "Invalid size"; stackSize = 10; } // end if else maxStackSize = stackSize; stackTop = 0; list = new Type[maxStackSize]; } template stackType::~stackType() { delete[] list; } template bool stackType::operator== (const stackType& right) { if (this->stackTop != right.stackTop) return false; for (int i = 0; i < stackTop; i++) if (this->list[i] != right.list[i]) return false; return true; } //main function int main() { // let the user know about the program cout << " \tProgram to overload the realtional " << "operator == for the class stackType.";

// create objects of type stackType stackType s1(12); stackType s2(15);

// insert elements into the stacks cout << " \tInserting elements 5, 10, 15 ... " << "to both the stacks."; for (int i = 5; i < 50; i += 5) { s1.push(i); s2.push(i); } // end for //check and print whether the stacks are equal or not if (s1 == s2) cout << " \tBoth the stacks are equal"; else cout << " \tBoth the stacks are not equal"; // insert one more element into the second stack cout << " \tInserting element 11 to the second stack."; s2.push(11); //check and print whether the stacks are equal or not if (s1 == s2) cout << " \tBoth the stacks are equal"; else cout << " \tBoth the stacks are not equal"; cout << " \t"; system("pause"); return 0; }

a. Add the following operation to the class stackType: void reverseStack(stackType &otherStack); This operation copies the elements of a stack in reverse order onto another stack. Consider the following statements: stackType stack1; stackType stack2; The statement stack1.reverseStack(stack2); copies the elements of stack1 onto stack2 in reverse order. That is, the top element ofstack1 is the bottom element ofstack2, and so on. The old contents of stack2 are destroyed and stack1 is unchanged. b. Write the definition of the function template to implement the operation reverseStack.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Processing

Authors: David M. Kroenke

12th Edition International Edition

1292023422, 978-1292023427

More Books

Students also viewed these Databases questions

Question

How do Data Types perform data validation?

Answered: 1 week ago

Question

How does Referential Integrity work?

Answered: 1 week ago