File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Stack :
2
+ def __init__ (self ):
3
+ self .items = []
4
+ def size (self ):
5
+ return len (self .items )
6
+ def push (self , value ):
7
+ self .items .append (value )
8
+ def pop (self ):
9
+ if self .size == 0 :
10
+ return None
11
+ return self .items .pop ()
12
+
13
+ class Queue :
14
+ def __init__ (self ):
15
+ self .instorage = Stack ()
16
+ self .outstorage = Stack ()
17
+
18
+ def size (self ):
19
+ return self .instorage .size () + self .outstorage .size ()
20
+ def enqueue (self , value ):
21
+ self .instorage .push (value )
22
+ def dequeue (self ):
23
+ if not self .outstorage .items :
24
+ while self .instorage .items :
25
+ self .outstorage .push (self .instorage .pop ())
26
+ return self .outstorage .pop ()
27
+
28
+ q = Queue ()
29
+ q .enqueue (1 )
30
+ q .enqueue (2 )
31
+ q .enqueue (3 )
32
+
33
+ # Test size
34
+ print ("Pass" if (q .size () == 3 ) else "Fail" )
35
+
36
+ # Test dequeue
37
+ print ("Pass" if (q .dequeue () == 1 ) else "Fail" )
38
+
39
+ # Test enqueue
40
+ q .enqueue (4 )
41
+ print ("Pass" if (q .dequeue () == 2 ) else "Fail" )
42
+ print ("Pass" if (q .dequeue () == 3 ) else "Fail" )
43
+ print ("Pass" if (q .dequeue () == 4 ) else "Fail" )
44
+ q .enqueue (5 )
45
+ print ("Pass" if (q .size () == 1 ) else "Fail" )
46
+
47
+
You can’t perform that action at this time.
0 commit comments