#include #include #include "queue.h" Queue::Queue() : first{nullptr} {} std::string Queue::to_string() const { std::string s{"[ "}; Task* curr{first}; while ( curr ) { s += curr -> task; s += " "; curr = curr -> next; } s += "]"; return s; } void Queue::enqueue(std::string t) { if ( first == nullptr) { first = new Task{t, first}; } else { Task* curr{first}; while ( curr -> next ) { curr = curr -> next; } curr -> next = new Task{t, nullptr}; } } void Queue::dequeue() { if( first ) { Task* tmp{first->next}; first -> next = nullptr; delete first; first = tmp; } } void Queue::execute() { if (first) { std::cout << first->task << std::endl; dequeue(); } else { std::cout << "Queue is empty, no task to run" << std::endl; } }