File tree 4 files changed +62
-4
lines changed
4 files changed +62
-4
lines changed Original file line number Diff line number Diff line change @@ -4,13 +4,17 @@ def __init__(self):
4
4
self .entries = []
5
5
self .length = 0
6
6
7
+ def __str__ (self ):
8
+ printed = '<' + str (self .entries )[1 :- 1 ] + '>'
9
+ return printed
10
+
7
11
"""Enqueues {@code item}
8
12
@param item
9
13
item to enqueue"""
10
14
def put (self , item ):
11
15
self .entries .append (item )
12
16
self .length = self .length + 1
13
- print ( self . entries )
17
+
14
18
15
19
"""Dequeues {@code item}
16
20
@requirement: |self.length| > 0
@@ -22,6 +26,13 @@ def get(self):
22
26
self .entries = self .entries [1 :]
23
27
return dequeued
24
28
29
+ """Rotates the queue {@code rotation} times
30
+ @param rotation
31
+ number of times to rotate queue"""
32
+ def rotate (self , rotation ):
33
+ for i in range (rotation ):
34
+ self .put (self .get ())
35
+
25
36
"""Enqueues {@code item}
26
37
@return item at front of self.entries"""
27
38
def front (self ):
@@ -30,6 +41,3 @@ def front(self):
30
41
"""Returns the length of this.entries"""
31
42
def size (self ):
32
43
return self .length
33
-
34
-
35
-
Original file line number Diff line number Diff line change
1
+ """Queue represented by a pseudo stack (represented by a list with pop and append)"""
2
+ class Queue ():
3
+ def __init__ (self ):
4
+ self .stack = []
5
+ self .length = 0
6
+
7
+ def __str__ (self ):
8
+ printed = '<' + str (self .stack )[1 :- 1 ] + '>'
9
+ return printed
10
+
11
+ """Enqueues {@code item}
12
+ @param item
13
+ item to enqueue"""
14
+ def put (self , item ):
15
+ self .stack .append (item )
16
+ self .length = self .length + 1
17
+
18
+ """Dequeues {@code item}
19
+ @requirement: |self.length| > 0
20
+ @return dequeued
21
+ item that was dequeued"""
22
+ def get (self ):
23
+ self .rotate (1 )
24
+ dequeued = self .stack [self .length - 1 ]
25
+ self .stack = self .stack [:- 1 ]
26
+ self .rotate (self .length - 1 )
27
+ self .length = self .length - 1
28
+ return dequeued
29
+
30
+ """Rotates the queue {@code rotation} times
31
+ @param rotation
32
+ number of times to rotate queue"""
33
+ def rotate (self , rotation ):
34
+ for i in range (rotation ):
35
+ temp = self .stack [0 ]
36
+ self .stack = self .stack [1 :]
37
+ self .put (temp )
38
+ self .length = self .length - 1
39
+
40
+ """Reports item at the front of self
41
+ @return item at front of self.stack"""
42
+ def front (self ):
43
+ front = self .get ()
44
+ self .put (front )
45
+ self .rotate (self .length - 1 )
46
+ return front
47
+
48
+ """Returns the length of this.stack"""
49
+ def size (self ):
50
+ return self .length
You can’t perform that action at this time.
0 commit comments