summaryrefslogtreecommitdiff
path: root/queue_array.py
diff options
context:
space:
mode:
authorleiyu3 <s444814187@gmail.com>2022-10-21 15:44:45 -0400
committerleiyu3 <s444814187@gmail.com>2022-10-21 15:44:45 -0400
commit027d0036c871a9d3bdc9769aaf3c0c59ea4b977a (patch)
tree0d06231e91a731755145a2adceb35b1071a4f1fd /queue_array.py
downloadqueue_array_py-master.tar.gz
queue_array_py-master.zip
init commitHEADmaster
Diffstat (limited to 'queue_array.py')
-rw-r--r--queue_array.py53
1 files changed, 53 insertions, 0 deletions
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 @@
1class Queue:
2 def __init__(self, size=7):
3 self.size = size+1
4 self.queue = [0]*self.size
5 self.write = 0
6 self.read = 0
7
8 def full(self):
9 return ((self.write+1)%self.size) == ((self.read)%self.size)
10
11 def empty(self):
12 return self.write == self.read
13
14 def enqueue(self, value):
15 """
16 Will add item to queue without overflowing
17 """
18 if (self.full()):
19 return
20
21 self.queue[self.write] = value
22 self.write += 1
23
24 if (self.write == self.size):
25 self.write = 0
26
27 def dequeue(self):
28 if (self.empty()):
29 return None
30
31 val = self.queue[self.read]
32 self.read += 1
33
34 if (self.read == self.size):
35 self.read = 0
36
37 return val
38
39
40if __name__ == "__main__":
41 que = Queue()
42 que.enqueue(1)
43 que.enqueue(2)
44 que.enqueue(3)
45 print(que.dequeue())
46 que.enqueue(4)
47 que.enqueue(5)
48 print(que.dequeue())
49 que.enqueue(6)
50 que.enqueue(7)
51 print(que.dequeue())
52 que.enqueue(7)
53 print(que.queue)