From 027d0036c871a9d3bdc9769aaf3c0c59ea4b977a Mon Sep 17 00:00:00 2001 From: leiyu3 Date: Fri, 21 Oct 2022 15:44:45 -0400 Subject: init commit --- queue_array.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 queue_array.py (limited to 'queue_array.py') diff --git a/queue_array.py b/queue_array.py new file mode 100644 index 0000000..4356b4d --- /dev/null +++ b/queue_array.py @@ -0,0 +1,53 @@ +class Queue: + def __init__(self, size=7): + self.size = size+1 + self.queue = [0]*self.size + self.write = 0 + self.read = 0 + + def full(self): + return ((self.write+1)%self.size) == ((self.read)%self.size) + + def empty(self): + return self.write == self.read + + def enqueue(self, value): + """ + Will add item to queue without overflowing + """ + if (self.full()): + return + + self.queue[self.write] = value + self.write += 1 + + if (self.write == self.size): + self.write = 0 + + def dequeue(self): + if (self.empty()): + return None + + val = self.queue[self.read] + self.read += 1 + + if (self.read == self.size): + self.read = 0 + + return val + + +if __name__ == "__main__": + que = Queue() + que.enqueue(1) + que.enqueue(2) + que.enqueue(3) + print(que.dequeue()) + que.enqueue(4) + que.enqueue(5) + print(que.dequeue()) + que.enqueue(6) + que.enqueue(7) + print(que.dequeue()) + que.enqueue(7) + print(que.queue) -- cgit v1.2.3