summaryrefslogtreecommitdiff
path: root/1_anno/Programmazione_2/data_structures/queue.cc
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2021-02-06 19:56:36 +0100
committerSanto Cariotti <santo@dcariotti.me>2021-02-06 19:56:36 +0100
commitd2edbc38cac8da52f58c5cd3da6c0c625fa05736 (patch)
treea51e9a4e56fc9d4c7c9e37576dceedca3a0c72b4 /1_anno/Programmazione_2/data_structures/queue.cc
parent98f34040820dc3a964b7be59a698323e8cc6c8a3 (diff)
conf: rename
Diffstat (limited to '1_anno/Programmazione_2/data_structures/queue.cc')
-rw-r--r--1_anno/Programmazione_2/data_structures/queue.cc72
1 files changed, 0 insertions, 72 deletions
diff --git a/1_anno/Programmazione_2/data_structures/queue.cc b/1_anno/Programmazione_2/data_structures/queue.cc
deleted file mode 100644
index 8398459..0000000
--- a/1_anno/Programmazione_2/data_structures/queue.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-#include<iostream>
-
-using namespace std;
-
-template<typename T>
-struct node {
- T value;
- node<T>* next;
-};
-
-template<class T>
-class queue {
-public:
- queue() : _head{nullptr} {}
-
- ~queue() {
- auto iter = _head;
- while(iter) {
- delete iter;
- iter = iter->next;
- }
- }
-
- queue<T>* enqueue(T val) {
-
- if(!_head) {
- _head = new node<T>{val, nullptr};
- _tail = _head;
- } else {
- _tail->next = new node<T>{val, nullptr};
- _tail = _tail->next;
- }
-
- return this;
- }
-
- node<T>* dequeue() {
- if(!_head) return nullptr;
- auto iter = _head;
- delete _head;
- _head = iter->next;
- return iter;
- }
-
- void print() {
- auto iter = _head;
- while(iter) {
- cout << iter->value << ' ';
- iter = iter->next;
- }
- cout << endl;
- }
-private:
- node<T>* _head;
- node<T>* _tail;
-};
-
-int main() {
- queue<int>* q = new queue<int>();
-
- q->dequeue();
- q->enqueue(4)->enqueue(2)->enqueue(8);
- q->print();
- auto e = q->dequeue();
- if(e)
- cout << e->value << endl;
- q->enqueue(1);
- q->print();
-
- delete q;
- return 0;
-}