Question: Write a program that uses a stack to print the prime factors of a positive integer (input by the user) in descending order. My code
Write a program that uses a stack to print the prime factors of a positive integer (input by the user) in descending order.
My code is below I need the Main.cpp
----------linkedStack.h--------------
//Header File: linkedStack.h #ifndef H_StackType #define H_StackType #include
#include "stackADT.h" using namespace std;
//Definition of the node template
template
bool isEmptyStack() const; //Function to determine whether the stack is empty. //Postcondition: Returns true if the stack is empty; // otherwise returns false.
bool isFullStack() const; //Function to determine whether the stack is full. //Postcondition: Returns false.
void initializeStack(); //Function to initialize the stack to an empty state. //Postcondition: The stack elements are removed; // stackTop = nullptr;
void push(const Type& newItem); //Function to add newItem to the stack. //Precondition: The stack exists and is not full. //Postcondition: The stack is changed and newItem // is added to the top of the stack.
Type top() const; //Function to return the top element of the stack. //Precondition: The stack exists and is not empty. //Postcondition: If the stack is empty, the program // terminates; otherwise, the top // element of the stack is returned.
void pop(); //Function to remove the top element of the stack. //Precondition: The stack exists and is not empty. //Postcondition: The stack is changed and the top // element is removed from the stack.
linkedStackType(); //Default constructor //Postcondition: stackTop = nullptr;
linkedStackType(const linkedStackType
~linkedStackType(); //Destructor //Postcondition: All the elements of the stack are // removed from the stack.
private: nodeType
void copyStack(const linkedStackType
//Default constructor template
template
template
template
while (stackTop != nullptr) //while there are elements in //the stack { temp = stackTop; //set temp to point to the //current node stackTop = stackTop->link; //advance stackTop to the //next node delete temp; //deallocate memory occupied by temp } } //end initializeStack
template
newNode = new nodeType
newNode->info = newElement; //store newElement in the node newNode->link = stackTop; //insert newNode before stackTop stackTop = newNode; //set stackTop to point to the //top node } //end push
template
template
if (stackTop != nullptr) { temp = stackTop; //set temp to point to the top node
stackTop = stackTop->link; //advance stackTop to the //next node delete temp; //delete the top node } else cout << "Cannot remove from an empty stack." << endl; }//end pop
template
if (stackTop != nullptr) //if stack is nonempty, make it empty initializeStack();
if (otherStack.stackTop == nullptr) stackTop = nullptr; else { current = otherStack.stackTop; //set current to point //to the stack to be copied
//copy the stackTop element of the stack stackTop = new nodeType
stackTop->info = current->info; //copy the info stackTop->link = nullptr; //set the link field of the //node to nullptr last = stackTop; //set last to point to the node current = current->link; //set current to point to //the next node
//copy the remaining stack while (current != nullptr) { newNode = new nodeType
//copy constructor template
//destructor template
//overloading the assignment operator template
return *this; }//end operator=
#endif
------------stackADT.h-------------
//Header file: stackADT.h #ifndef H_StackADT #define H_StackADT template
virtual bool isEmptyStack() const = 0; //Function to determine whether the stack is empty. //Postcondition: Returns true if the stack is empty, // otherwise returns false.
virtual bool isFullStack() const = 0; //Function to determine whether the stack is full. //Postcondition: Returns true if the stack is full, // otherwise returns false.
virtual void push(const Type& newItem) = 0; //Function to add newItem to the stack. //Precondition: The stack exists and is not full. //Postcondition: The stack is changed and newItem // is added to the top of the stack.
virtual Type top() const = 0; //Function to return the top element of the stack. //Precondition: The stack exists and is not empty. //Postcondition: If the stack is empty, the program // terminates; otherwise, the top element // of the stack is returned.
virtual void pop() = 0; //Function to remove the top element of the stack. //Precondition: The stack exists and is not empty. //Postcondition: The stack is changed and the top // element is removed from the stack. }; #endif
------------------main.cpp------------------
#include
using namespace std;
int main() { // Write your main here return 0; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
