Skip to content

Commit 7bbbb6c

Browse files
Iplementing queue with linked list
1 parent 55c3141 commit 7bbbb6c

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

implement_queue_linkedList.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
class Node:
2+
def __init__(self, value):
3+
self.value = value
4+
self.next = None
5+
6+
class Queue:
7+
def __init__(self):
8+
self.head = None
9+
self.tail = None
10+
self.queue_size = 0
11+
12+
def size(self):
13+
return self.queue_size
14+
def is_empty(self):
15+
return self.queue_size == 0
16+
def enqueue(self, value):
17+
if self.head is None:
18+
self.head = Node(value)
19+
self.tail = self.head
20+
else:
21+
self.tail.next = Node(value)
22+
self.tail = self.tail.next
23+
self.queue_size += 1
24+
def dequeue(self):
25+
if self.head is None:
26+
return None
27+
value = self.head.value
28+
self.head = self.head.next
29+
self.queue_size -=1
30+
return value
31+
def top(self):
32+
return self.head.value
33+
34+
q = Queue()
35+
q.enqueue(1)
36+
q.enqueue(2)
37+
q.enqueue(3)
38+
39+
# Test size
40+
print ("Pass" if (q.size() == 3) else "Fail")
41+
42+
# Test dequeue
43+
print ("Pass" if (q.dequeue() == 1) else "Fail")
44+
45+
# Test enqueue
46+
q.enqueue(4)
47+
print ("Pass" if (q.dequeue() == 2) else "Fail")
48+
print ("Pass" if (q.dequeue() == 3) else "Fail")
49+
print ("Pass" if (q.dequeue() == 4) else "Fail")
50+
q.enqueue(5)
51+
print ("Pass" if (q.size() == 1) else "Fail")
52+

0 commit comments

Comments
 (0)