diff options
author | Santo Cariotti <santo@dcariotti.me> | 2021-02-06 19:56:36 +0100 |
---|---|---|
committer | Santo Cariotti <santo@dcariotti.me> | 2021-02-06 19:56:36 +0100 |
commit | d2edbc38cac8da52f58c5cd3da6c0c625fa05736 (patch) | |
tree | a51e9a4e56fc9d4c7c9e37576dceedca3a0c72b4 /1_anno/Programmazione_2/exercises/inserimento-pila.cc | |
parent | 98f34040820dc3a964b7be59a698323e8cc6c8a3 (diff) |
conf: rename
Diffstat (limited to '1_anno/Programmazione_2/exercises/inserimento-pila.cc')
-rw-r--r-- | 1_anno/Programmazione_2/exercises/inserimento-pila.cc | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/1_anno/Programmazione_2/exercises/inserimento-pila.cc b/1_anno/Programmazione_2/exercises/inserimento-pila.cc deleted file mode 100644 index 0dbe99b..0000000 --- a/1_anno/Programmazione_2/exercises/inserimento-pila.cc +++ /dev/null @@ -1,116 +0,0 @@ -#include<iostream> -#include<fstream> - -using namespace std; - -template<class T> -class node { -public: - node(T key, node<T>* next) : _key{key}, _next{next} {} - node(T key) : _key{key}, _next{nullptr} {} - const T& key() const { return _key; } - T& key() { return _key; } - const node<T>*& next() const { return _next; } - node<T>*& next() { return _next; } -private: - T _key; - node<T>* _next; -}; - -template<class T> -class Pila { -public: - Pila() : _head{nullptr}{} - ~Pila() { - - } - Pila<T>* push(T val) { - if(!_head) { - _head = new node<T>{val, nullptr}; - } else { - _head = new node<T>{val, _head}; - } - - return this; - } - node<T>* pop() { - if(!_head) return nullptr; - node<T>* elem = _head; - delete _head; - _head = elem->next(); - - return elem; - } - - bool is_empty() { return _head == nullptr; } -private: - node<T>* _head; -}; - -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': { - Pila<bool>* stack = new Pila<bool>{}; - in >> n; - bool e; - for(int i = 0; i < n; ++i) { - in >> e; - stack->push(e); - } - while(!stack->is_empty()) - out << stack->pop()->key() << ' '; - out << endl; - break; - } - case 'd': { - Pila<double>* stack = new Pila<double>{}; - in >> n; - double e; - for(int i = 0; i < n; ++i) { - in >> e; - stack->push(e); - } - while(!stack->is_empty()) - out << stack->pop()->key() << ' '; - out << endl; - break; - } - case 'c': { - Pila<char>* stack = new Pila<char>{}; - in >> n; - char e; - for(int i = 0; i < n; ++i) { - in >> e; - stack->push(e); - } - while(!stack->is_empty()) - out << stack->pop()->key() << ' '; - out << endl; - break; - } - case 'i': { - Pila<int>* stack = new Pila<int>{}; - in >> n; - int e; - for(int i = 0; i < n; ++i) { - in >> e; - stack->push(e); - } - while(!stack->is_empty()) - out << stack->pop()->key() << ' '; - out << endl; - break; - } - } - } - in.close(); - out.close(); - return 0; -} |