T Stack<T>::pop() throw(PreconditionViolationException) { Node<T>* temp = m_front; T tempValue = T(); if(isEmpty()) { throw PreconditionViolationException("Pop attempted on an empty stack"); } else if(size() == 1) { tempValue = m_front->getValue(); delete m_front; m_front = nullptr; m_size--; return(tempValue); } else { tempValue = m_front->getValue(); m_front = m_front->getNext(); delete temp; m_size--; return(tempValue); } }
T Stack<T>::peek() const throw(PreconditionViolationException){ if(isEmpty()){ throw (PreconditionViolationException("Peek attempted on an empty stack")); } else{ return m_front->getValue(); } }
void Stack<T>::pop() throw(PreconditionViolationException){ if(isEmpty()){ throw (PreconditionViolationException("Pop attempted on an empty stack")); } else{ m_front->getValue(); m_front=m_front->getNext(); m_size--; } }
T Stack<T>::peek() const throw(PreconditionViolationException){ if(isEmpty()){ throw(PreconditionViolationException("Exception: Peek attempted on an empty stack\n")); } else{ return (m_top->getValue()); } }
T Stack<T>::peek() const throw(PreconditionViolationException){ //throw exception if list is empty if(isEmpty()){ throw PreconditionViolationException("Peek attempted on empty stack.\n"); } //return top value of the stack else{ return m_top->getValue(); } }
T Stack<T>::pop() throw(PreconditionViolationException){ if(isEmpty()){ throw(PreconditionViolationException("Exception: Pop attempted on an empty stack\n")); } else{ Node<T>* n = (m_top->getNext()); T temp = (m_top->getValue()); delete m_top; m_size--; m_top = n; return temp; } }
void Stack<T>::pop() throw(PreconditionViolationException) { if (isEmpty()) { throw PreconditionViolationException("Pop attempted on an empty stack"); } else { Node<T>* nodeToDelete = m_top; m_top = m_top->getNext(); m_size--; delete nodeToDelete; nodeToDelete = nullptr; } }
void Stack<T>::pop() throw(PreconditionViolationException){ //throws exception if list is empty if(isEmpty()){ throw PreconditionViolationException("Pop attempted on empty stack.\n"); } else{ //temporary pointer that moves Node<T>* traverse = m_top; //move m_top pointer so traverse is the only pointer holding node to be deleted m_top = m_top->getNext(); //delete node and set traverse to nullptr delete traverse; traverse = nullptr; //decrement to reflect that one fewer node exists m_size--; } }