From f279107065146a4940f5e73602a1c3c09e58b31d Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Sun, 18 Oct 2020 18:56:43 +0200 Subject: chore: name of first year folder --- I_anno/Programmazione_2/exercises/dequeue.cc | 137 --------------------------- 1 file changed, 137 deletions(-) delete mode 100644 I_anno/Programmazione_2/exercises/dequeue.cc (limited to 'I_anno/Programmazione_2/exercises/dequeue.cc') diff --git a/I_anno/Programmazione_2/exercises/dequeue.cc b/I_anno/Programmazione_2/exercises/dequeue.cc deleted file mode 100644 index 4b012c4..0000000 --- a/I_anno/Programmazione_2/exercises/dequeue.cc +++ /dev/null @@ -1,137 +0,0 @@ - -#include -#include - -using namespace std; - -template -class node { -public: - node(T key, node* next) : _key{key}, _next{next} {} - node(T key) : _key{key}, _next{nullptr} {} - const T& key() const { return _key; } - T& key() { return _key; } - const node*& next() const { return _next; } - node*& next() { return _next; } -private: - T _key; - node* _next; -}; - -template -class Coda { -public: - Coda() : _head{nullptr}, _tail{nullptr} {} - ~Coda() { - - } - Coda* enqueue(T val) { - if(!_head) { - _head = new node{val, nullptr}; - _tail = _head; - } else { - _tail->next() = new node{val, nullptr}; - _tail = _tail->next(); - } - - return this; - } - node* dequeue() { - if(!_head) return nullptr; - node* elem = _head; - delete _head; - _head = elem->next(); - - return elem; - } - - bool is_empty() { return _head == nullptr; } -private: - node* _head; - node* _tail; -}; - -int main() { - ifstream in("input.txt"); - ofstream out("output.txt"); - - for(int ts = 0; ts < 100; ++ts) { - string t; - int n; - in >> t; - switch(t.at(0)) { - case 'b': { - Coda* queue = new Coda{}; - in >> n; - string s; - for(int i = 0; i < n; ++i) { - in >> s; - if(s.at(0) == 'i') { - queue->enqueue(s.at(1) - '0'); - } else { - queue->dequeue(); - } - } - while(!queue->is_empty()) - out << queue->dequeue()->key() << ' '; - out << endl; - break; - } - case 'd': { - Coda* queue = new Coda{}; - in >> n; - string s; - for(int i = 0; i < n; ++i) { - in >> s; - if(s.at(0) == 'i') { - queue->enqueue(stod(s.substr(1, s.length()-1))); - } else { - queue->dequeue(); - } - } - while(!queue->is_empty()) - out << queue->dequeue()->key() << ' '; - out << endl; - break; - } - case 'c': { - Coda* queue = new Coda{}; - in >> n; - string s; - for(int i = 0; i < n; ++i) { - in >> s; - if(s.at(0) == 'i') { - queue->enqueue(s.at(1)); - } else { - queue->dequeue(); - } - } - while(!queue->is_empty()) - out << queue->dequeue()->key() << ' '; - out << endl; - break; - } - case 'i': { - Coda* queue = new Coda{}; - in >> n; - string s; - for(int i = 0; i < n; ++i) { - in >> s; - if(s.at(0) == 'i') { - queue->enqueue(stoi(s.substr(1, s.length()-1))); - } else { - queue->dequeue(); - } - } - while(!queue->is_empty()) - out << queue->dequeue()->key() << ' '; - out << endl; - break; - } - } - } - in.close(); - out.close(); - return 0; -} - -- cgit v1.2.3-18-g5258