#include #include "kryp_solution.h" Kryp::Kryp() : first(nullptr) {} Kryp::~Kryp() { delete first; } bool Kryp::empty() const { return first == nullptr; } void Kryp::push(Kryp_Data const& i) { first = new Element(i, first); } Kryp_Data Kryp::pop() { if ( empty() ) { // std::cerr << "tom kryp" << std::endl; throw std::logic_error("tom kryp"); } else { Element* victim{ first }; Kryp_Data data = victim->data; first = victim->next; victim->next = nullptr; delete victim; return data; } }