Skip to content

Commit f7df083

Browse files
authored
Merge pull request kelvins#242 from TanmaiDadi/main
Create Double-ended Queue.py
2 parents 3f60f9b + 3cb04bf commit f7df083

File tree

2 files changed

+62
-2
lines changed

2 files changed

+62
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1708,8 +1708,8 @@ In order to achieve greater coverage and encourage more people to contribute to
17081708
</a>
17091709
</td>
17101710
<td> <!-- Python -->
1711-
<a href="./CONTRIBUTING.md">
1712-
<img align="center" height="25" src="./logos/github.svg" />
1711+
<a href="./src/python/deque.py">
1712+
<img align="center" height="25" src="./logos/python.svg" />
17131713
</a>
17141714
</td>
17151715
<td> <!-- Go -->

src/python/deque.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
class Deque:
2+
def __init__(self):
3+
self.items = []
4+
5+
def is_empty(self):
6+
return len(self.items) == 0
7+
8+
def size(self):
9+
return len(self.items)
10+
11+
def add_front(self, item):
12+
self.items.insert(0, item)
13+
14+
def add_rear(self, item):
15+
self.items.append(item)
16+
17+
def remove_front(self):
18+
if not self.is_empty():
19+
return self.items.pop(0)
20+
else:
21+
raise IndexError("Deque is empty")
22+
23+
def remove_rear(self):
24+
if not self.is_empty():
25+
return self.items.pop()
26+
else:
27+
raise IndexError("Deque is empty")
28+
29+
def peek_front(self):
30+
if not self.is_empty():
31+
return self.items[0]
32+
else:
33+
raise IndexError("Deque is empty")
34+
35+
def peek_rear(self):
36+
if not self.is_empty():
37+
return self.items[-1]
38+
else:
39+
raise IndexError("Deque is empty")
40+
41+
def __str__(self):
42+
return str(self.items)
43+
44+
45+
if __name__ == "__main__":
46+
my_deque = Deque()
47+
48+
my_deque.add_front(1)
49+
my_deque.add_rear(2)
50+
my_deque.add_front(3)
51+
52+
print(my_deque) # Output: [3, 1, 2]
53+
54+
print(my_deque.remove_front()) # Output: 3
55+
print(my_deque.remove_rear()) # Output: 2
56+
57+
print(my_deque.peek_front()) # Output: 1
58+
print(my_deque.peek_rear()) # Output: 1
59+
60+
print(my_deque.size()) # Output: 1

0 commit comments

Comments
 (0)