-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathcircular_queue.py
More file actions
51 lines (42 loc) · 1.26 KB
/
circular_queue.py
File metadata and controls
51 lines (42 loc) · 1.26 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
48
49
# In this sort of circular Queue, we can insert any number of elements until queue becomes full regardless of empty spaces in the front of the queue
class CircularQueue:
def __init__(self,size):
self.size = size
self.head = -1
self.tail = -1
self.array = [None] * size
def isEmpty(self):
if (self.head == -1 & self.tail == -1):
print(True)
else:
print(False)
def peek(self):
if (self.head == -1 & self.tail == -1):
print('Queue is empty')
return None
else:
print('First data in queue is : ' + str(self.array[self.head]))
return self.array[self.head]
def add(self, data):
if ((self.tail+1) % self.size == self.head):
print('Queue is full')
return
if (self.head == -1 & self.tail == -1):
self.head = 0
self.tail = (self.tail+1)%self.size
self.array[self.tail] = data
print(str(data) + ' was inserted')
def remove(self):
if (self.head == -1 & self.tail == -1):
print('Queue is empty')
elif (self.head == self.tail ):
self.head=self.tail= -1
else:
print(str(self.array[self.head]) + ' was deleted')
self.array[self.head] = None
self.head = (self.head+1)%self.size
def display(self):
if (self.head == -1 & self.tail == -1):
print('Queue is empty')
else:
print('Queue is : ' + str(self.array))