From d2edbc38cac8da52f58c5cd3da6c0c625fa05736 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Sat, 6 Feb 2021 19:56:36 +0100 Subject: conf: rename --- 1_anno/Programmazione_2/exercises/doppioni.cc | 77 --------------------------- 1 file changed, 77 deletions(-) delete mode 100644 1_anno/Programmazione_2/exercises/doppioni.cc (limited to '1_anno/Programmazione_2/exercises/doppioni.cc') diff --git a/1_anno/Programmazione_2/exercises/doppioni.cc b/1_anno/Programmazione_2/exercises/doppioni.cc deleted file mode 100644 index fdd3e88..0000000 --- a/1_anno/Programmazione_2/exercises/doppioni.cc +++ /dev/null @@ -1,77 +0,0 @@ -#include -#include - -using namespace std; - -template -class node { -public: - node(T key, node* parent, node* right, node* left) : _key{key}, _parent{parent}, _right{right}, _left{left} {} - T& key() { return _key; } - const T& key() const { return _key; } - node*& parent() { return _parent; } - const node*& parent() const { return _parent; } - node*& right() { return _right; } - const node*& right() const { return _right; } - node*& left() { return _left; } - const node*& left() const { return _left; } -private: - T _key; - node* _parent; - node* _right; - node* _left; -}; - -class bst { -public: - bst() : _duplicates{0}, _root{nullptr} {} - bst* add(int val) { - node* iter = _root; - node* prev = nullptr; - while(iter) { - prev = iter; - if(iter->key() == val) { - _duplicates++; - return this; - } - - if(iter->key() > val) - iter = iter->right(); - else - iter = iter->left(); - } - - node* nodus = new node{val, prev, nullptr, nullptr}; - if(!prev) - _root = nodus; - else if(prev->key() > val) - prev->right() = nodus; - else - prev->left() = nodus; - - return this; - } - const int& duplicates() const { return _duplicates; } -private: - int _duplicates; - node* _root; -}; - -int main() { - ifstream in("input.txt"); - ofstream out("output.txt"); - for(int ts = 0; ts < 100; ++ts) { - bst* b = new bst{}; - int n; - in >> n; - int e; - for(int i = 0; i < n; ++i) { - in >> e; - b->add(e); - } - out << b->duplicates() << endl; - } - in.close(); - out.close(); - return 0; -} -- cgit v1.2.3-18-g5258