File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments