File tree Expand file tree Collapse file tree 4 files changed +62
-4
lines changed Expand file tree Collapse file tree 4 files changed +62
-4
lines changed Original file line number Diff line number Diff line change @@ -4,13 +4,17 @@ def __init__(self):
44 self .entries = []
55 self .length = 0
66
7+ def __str__ (self ):
8+ printed = '<' + str (self .entries )[1 :- 1 ] + '>'
9+ return printed
10+
711 """Enqueues {@code item}
812 @param item
913 item to enqueue"""
1014 def put (self , item ):
1115 self .entries .append (item )
1216 self .length = self .length + 1
13- print ( self . entries )
17+
1418
1519 """Dequeues {@code item}
1620 @requirement: |self.length| > 0
@@ -22,6 +26,13 @@ def get(self):
2226 self .entries = self .entries [1 :]
2327 return dequeued
2428
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+
2536 """Enqueues {@code item}
2637 @return item at front of self.entries"""
2738 def front (self ):
@@ -30,6 +41,3 @@ def front(self):
3041 """Returns the length of this.entries"""
3142 def size (self ):
3243 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