-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCIRCULAR_QUEUE.PY
More file actions
47 lines (42 loc) · 1.06 KB
/
CIRCULAR_QUEUE.PY
File metadata and controls
47 lines (42 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class Queue:
def __init__(self,size):
self.queue=[None for i in range(size)]
self.size=size
self.ront=self.rer=-1
def enqueue(self,unit):
if (self.rer+1)%self.size==self.ront:
print("QUEUE IS EMPTY")
elif self.ront==-1:
self.ront=0
self.rer=0
self.queue[self.rer]=unit
else:
self.rer=(self.rer+1)%self.size
self.queue[self.rer]=unit
def dequeue(self):
if self.ront==-1:
print("QUEUE IS EMPTY")
elif self.rer==self.ront:
tmp=self.queue[self.ront]
self.ront=-1
self.rer=-1
return tmp
else:
self.ront=(self.ront+1)%self.size
tmp=self.queue[self.ront]
return tmp
def printqueue(self):
if self.ront==-1:
print("QUEUE IS EMPTY")
elif self.rer>=self.ront:
for i in range(self.ront,self.rer+1):
print(self.queue[i])
if __name__ == '__main__':
ob=Queue(10)
for i in range(10):
ob.enqueue(i)
ob.dequeue()
ob.dequeue()
ob.dequeue()
ob.dequeue()
ob.printqueue()