Skip to content

Commit 2ddbfe4

Browse files
committed
Three Hundred - Forty-Eight Commit: Implement LinkedListQueue Class
1 parent 1ee6eba commit 2ddbfe4

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

Section_12(Graphs)/queuelinkedlist.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Node Class
2+
class _Node:
3+
__slots__ = '_element', '_next'
4+
5+
def __init__(self, element, next):
6+
self._element = element
7+
self._next = next
8+
9+
# LinkedListQueue Class
10+
11+
class LinkedListQueue:
12+
def __init__(self):
13+
self._front = None
14+
self._rear = None
15+
self._size = 0
16+
17+
def __len__(self):
18+
return self._size
19+
20+
def is_empty(self):
21+
return self._size == 0
22+
23+
def enqueue(self, element):
24+
newest = _Node(element, None)
25+
if self.is_empty():
26+
self._front = newest
27+
else:
28+
self._rear._next = newest
29+
self._rear = newest
30+
self._size += 1
31+
32+
def dequeue(self):
33+
if self.is_empty():
34+
print('Queue is Empty')
35+
return
36+
e = self._front._element
37+
self._front = self._front._next
38+
self._size -= 1
39+
if self.is_empty():
40+
self._rear = None
41+
return e
42+
43+
def peek(self):
44+
if self.is_empty():
45+
print('Queue is Empty')
46+
return
47+
return self._front._element
48+
49+
def display(self):
50+
p = self._front
51+
while p:
52+
print(p._element, end=' <-- ')
53+
p = p._next
54+
print()

0 commit comments

Comments
 (0)