Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 12 / task1 / Queue
diff options
context:
space:
mode:
Commit8cf1283a4ffb9fe1901c29c087fa376de82726af (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2022-02-19 23:30:52 +0200
Committer
 angeld55 <angel_dimitriev@abv.bg>
2022-02-19 23:30:52 +0200
Filesabdfe6bf526100dcce87a88563100e02adf7605e /Sem. 12/task1/Queue
Object-oriented_programming_FMI-8cf1283a4ffb9fe1901c29c087fa376de82726af.tar
Object-oriented_programming_FMI-8cf1283a4ffb9fe1901c29c087fa376de82726af.tar.gz
Object-oriented_programming_FMI-8cf1283a4ffb9fe1901c29c087fa376de82726af.zip
Parentd73a7ec225516657dec74472a0491330e9999217 (diff)
clean up
1 files changed, 0 insertions, 145 deletions
-rw-r--r--Sem. 12/task1/Queue/Queue.hpp145
diff --git a/Sem. 12/task1/Queue/Queue.hpp b/Sem. 12/task1/Queue/Queue.hpp
deleted file mode 100644
index e47460a..0000000
--- a/Sem. 12/task1/Queue/Queue.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-#pragma once
-#include <iostream>
-
-template <typename T>
-class Queue
-{
- T* data;
- size_t capacity;
- size_t count;
-
- size_t head; //where to get
- size_t tail; //last added element;
-
- void resize(size_t newCapacity);
-
- void copyFrom(const Queue<T>& other);
- void free();
-public:
- Queue();
-
- Queue(const Queue<T>& other);
- Queue<T>& operator=(const Queue<T>& other);
-
- void enqueue(const T& obj);
- T dequeue();
-
- size_t getCount();
- size_t isEmpty();
-
- ~Queue();
-};
-
-template <typename T>
-Queue<T>::Queue()
-{
- capacity = 4;
- data = new T[capacity];
-
- count = 0;
- head = tail = 0;
-}
-
-
-
-template <typename T>
-void Queue<T>::enqueue(const T& obj)
-{
- if (count == capacity)
- resize(capacity * 2);
- if (count != 0)
- tail++;
-
- tail %= capacity; //so we don't get an out of range exception
-
- data[tail] = obj;
-
- count++;
-}
-
-template <typename T>
-T Queue<T>::dequeue()
-{
- if (count == 0)
- throw std::exception("The collection is empty!");
-
- T toReturn = data[head];
- (++head) %= capacity;
-
- count--;
-
- return toReturn;
-}
-
-template <typename T>
-size_t Queue<T>::getCount()
-{
- return count;
-}
-
-template <typename T>
-size_t Queue<T>::isEmpty()
-{
- return getCount() == 0;
-}
-
-template <typename T>
-void Queue<T>::resize(size_t newCapacity)
-{
- T* newData = new T[newCapacity];
-
- for (int i = 0, ind = head; i < count; i++, (++ind) %= capacity)
- newData[i] = data[ind];
-
- delete[] data;
- capacity = newCapacity;
- data = newData;
-
- head = 0;
- tail = count - 1;
-}
-
-template <typename T>
-void Queue<T>::copyFrom(const Queue<T>& other)
-{
- data = new T[other.capacity];
- for (int i = 0; i < other.capacity; i++)
- data[i] = other.data[i];
-
- head = other.head;
- tail = other.tail;
-
- count = other.count;
- capacity = other.capacity;
-
-}
-
-template <typename T>
-void Queue<T>::free()
-{
- delete[] data;
-}
-
-template <typename T>
-Queue<T>::Queue(const Queue<T>& other)
-{
- copyFrom(other);
-
-}
-
-template <typename T>
-Queue<T>& Queue<T>::operator=(const Queue<T>& other)
-{
- if (this != &other)
- {
- free();
- copyFrom(other);
- }
- return *this;
-}
-
-template <typename T>
-Queue<T>::~Queue()
-{
- free();
-}