...ures and Patterns\Assignment 6\Resources\DynamicStack.
h
#pragma once
#include "..\..\Resources\ListPS6.h"
#include <stdexcept>
template<class T>
class DynamicStack
{
private:
List<T> fElements;
public:
bool isEmpty() const;
int size() const;
void push(const T& aItem);
void pop();
const T& top() const;
};
template<class T>
bool DynamicStack<T>::isEmpty() const
{
return (size()==0);
}
template<class T>
int DynamicStack<T>::size() const
{
return [Link]();
}
template<class T>
void DynamicStack<T>::push(const T & aItem)
{
fElements.push_front(aItem);
}
template<class T>
void DynamicStack<T>::pop()
{
if (!isEmpty()) {
//remove the last appended item
[Link](fElements[0]);
}
else {
throw std::logic_error("No values in the stack to perform a pop");
}
}
template<class T>
const T & DynamicStack<T>::top() const
{
return fElements[0];
}