From 652bf4207f47765e30c998cfa003f757944fbb23 Mon Sep 17 00:00:00 2001 From: Sanya Verma Date: Mon, 26 Sep 2022 14:02:47 +0530 Subject: [PATCH] Circular-Queue --- .../data-structures/queue/Circular_queue.cpp | 68 ++++++++++++++++++ .../data-structures/queue/Circular_queue.exe | Bin 0 -> 66148 bytes 2 files changed, 68 insertions(+) create mode 100644 algorithms/data-structures/queue/Circular_queue.cpp create mode 100644 algorithms/data-structures/queue/Circular_queue.exe diff --git a/algorithms/data-structures/queue/Circular_queue.cpp b/algorithms/data-structures/queue/Circular_queue.cpp new file mode 100644 index 00000000..83fd8ca2 --- /dev/null +++ b/algorithms/data-structures/queue/Circular_queue.cpp @@ -0,0 +1,68 @@ +#include +using namespace std; +class MyCircularQueue +{ +public: + int cap; + deque q; + + MyCircularQueue(int k) + { + + cap = k; + } + + bool enQueue(int value) + { + + if (isFull()) + return false; + q.push_back(value); + return true; + } + + bool deQueue() + { + + if (isEmpty()) + return false; + q.pop_front(); + return true; + } + + int Front() + { + if (isEmpty()) + return -1; + + return q.front(); + } + + int Rear() + { + if (isEmpty()) + return -1; + + return q.back(); + } + + bool isEmpty() + { + return (q.size() == 0); + } + + bool isFull() + { + return (q.size() == cap); + } +}; +int main() +{ + MyCircularQueue q(5); + for (int i=1;i<=5;i++){ + q.enQueue(i); + } + + + return 0; +} \ No newline at end of file diff --git a/algorithms/data-structures/queue/Circular_queue.exe b/algorithms/data-structures/queue/Circular_queue.exe new file mode 100644 index 0000000000000000000000000000000000000000..3541ff8a3051e25241fbeec23097306a73aaed39 GIT binary patch literal 66148 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