Skip to content

Commit 101cccd

Browse files
Merge pull request TheAlgorithms#37 from ShyamW/master
Merge Request
2 parents 78f99d2 + 1d66680 commit 101cccd

File tree

4 files changed

+62
-4
lines changed

4 files changed

+62
-4
lines changed

data_structures/QueueOnList.py renamed to data_structures/Queue/QueueOnList.py

+12-4
Original file line numberDiff line numberDiff 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 numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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

data_structures/Queue/__init__.py

Whitespace-only changes.

data_structures/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)