Question: Please help! it's not compiling. #ifndef DYNAMICSTACK_H_INCLUDED #define DYNAMICSTACK_H_INCLUDED // Specification file for the DynamicStack class class DynamicStack { private: // Structure for stack nodes
Please help! it's not compiling.
#ifndef DYNAMICSTACK_H_INCLUDED #define DYNAMICSTACK_H_INCLUDED
// Specification file for the DynamicStack class
class DynamicStack { private: // Structure for stack nodes struct StackNode { int value; // Value in the node StackNode *next; // Pointer to the next node };
StackNode *top; // Pointer to the stack top
public: // Constructor DynamicStack() { top = nullptr; }
// Destructor ~DynamicStack();
// Stack operations void push(int); void pop(int &); bool isEmpty(); }; #endif
(main function)
#include
//************************************************** // Destructor * // This function deletes every node in the list. * //**************************************************
DynIntStack::~DynamicStack() { StackNode *nodePtr = nullptr, *nextNode = nullptr;
// Position nodePtr at the top of the stack. nodePtr = top;
// Traverse the list deleting each node. while (nodePtr != nullptr) { nextNode = nodePtr->next; delete nodePtr; nodePtr = nextNode; } }
//************************************************* // Member function push pushes the argument onto * // the stack. * //*************************************************
void DynamicStack::push(int num) { StackNode *newNode = nullptr; // Pointer to a new node
// Allocate a new node and store num there. newNode = new StackNode; newNode->value = num;
// If there are no nodes in the list // make newNode the first node. if (isEmpty()) { top = newNode; newNode->next = nullptr; } else // Otherwise, insert NewNode before top. { newNode->next = top; top = newNode; } }
//***************************************************** // Member function pop pops the value at the top * // of the stack off, and copies it into the variable * // passed as an argument. * //*****************************************************
void DynamicStack::pop(int &num) { StackNode *temp = nullptr; // Temporary pointer
// First make sure the stack isn't empty. if (isEmpty()) { cout << "The stack is empty. "; } else // pop value off top of stack
{ num = top->value; temp = top->next; delete top; top = temp; } }
//***************************************************** // Member function isEmpty returns true if the stack * // is empty, or false otherwise. * //*****************************************************
bool DynamicStack::isEmpty() { bool status;
if (!top) status = true; else status = false;
return status; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
