Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2ddbfe4

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /