From 13dd4a1e5d74b1262df6f37616f5fc91fe95520f Mon Sep 17 00:00:00 2001 From: Date: Sun, 9 Oct 2016 11:51:43 -0400 Subject: [PATCH 1/3] Added toString and rotate --- data_structures/QueueOnList.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/data_structures/QueueOnList.py b/data_structures/QueueOnList.py index c6c01f7c0..3e1c79be1 100644 --- a/data_structures/QueueOnList.py +++ b/data_structures/QueueOnList.py @@ -4,13 +4,17 @@ class Queue(): self.entries = [] self.length = 0 + def __str__(self): + printed = '<' + str(self.entries)[1:-1] + '>' + return printed + """Enqueues {@code item} @param item item to enqueue""" def put(self, item): self.entries.append(item) self.length = self.length + 1 - print(self.entries) + """Dequeues {@code item} @requirement: |self.length| > 0 @@ -22,6 +26,13 @@ class Queue(): self.entries = self.entries[1:] return dequeued + """Rotates the queue {@code rotation} times + @param rotation + number of times to rotate queue""" + def rotate(self, rotation): + for i in range(rotation): + self.put(self.get()) + """Enqueues {@code item} @return item at front of self.entries""" def front(self): @@ -30,6 +41,3 @@ class Queue(): """Returns the length of this.entries""" def size(self): return self.length - - - From d79105d5cf7651a4504a682b79f15e5fbc55e446 Mon Sep 17 00:00:00 2001 From: Date: Sun, 9 Oct 2016 12:20:45 -0400 Subject: [PATCH 2/3] Added queue on stack --- data_structures/{ => Queue}/QueueOnList.py | 0 data_structures/Queue/QueueOnPseudoStack.py | 51 +++++++++++++++++++++ data_structures/Queue/__init__.py | 0 data_structures/__init__.py | 0 4 files changed, 51 insertions(+) rename data_structures/{ => Queue}/QueueOnList.py (100%) create mode 100644 data_structures/Queue/QueueOnPseudoStack.py create mode 100644 data_structures/Queue/__init__.py create mode 100644 data_structures/__init__.py diff --git a/data_structures/QueueOnList.py b/data_structures/Queue/QueueOnList.py similarity index 100% rename from data_structures/QueueOnList.py rename to data_structures/Queue/QueueOnList.py diff --git a/data_structures/Queue/QueueOnPseudoStack.py b/data_structures/Queue/QueueOnPseudoStack.py new file mode 100644 index 000000000..e1ab68d97 --- /dev/null +++ b/data_structures/Queue/QueueOnPseudoStack.py @@ -0,0 +1,51 @@ +"""Queue represented by a pseudo stack (represented by a list with pop and append)""" +class Queue(): + def __init__(self): + self.stack = [] + self.length = 0 + + def __str__(self): + printed = '<' + str(self.stack)[1:-1] + '>' + return printed + + """Enqueues {@code item} + @param item + item to enqueue""" + def put(self, item): + self.stack.append(item) + self.length = self.length + 1 + + + """Dequeues {@code item} + @requirement: |self.length| > 0 + @return dequeued + item that was dequeued""" + def get(self): + self.rotate(1) + dequeued = self.stack[self.length-1] + self.stack = self.stack[:-1] + self.rotate(self.length-1) + self.length = self.length -1 + return dequeued + + """Rotates the queue {@code rotation} times + @param rotation + number of times to rotate queue""" + def rotate(self, rotation): + for i in range(rotation): + temp = self.stack[0] + self.stack = self.stack[1:] + self.put(temp) + self.length = self.length - 1 + + """Reports item at the front of self + @return item at front of self.stack""" + def front(self): + front = self.get() + self.put(front) + self.rotate(self.length-1) + return front + + """Returns the length of this.stack""" + def size(self): + return self.length diff --git a/data_structures/Queue/__init__.py b/data_structures/Queue/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/data_structures/__init__.py b/data_structures/__init__.py new file mode 100644 index 000000000..e69de29bb From 1d66680952cf68995c8abc1b31d3bd9db4d5f1a2 Mon Sep 17 00:00:00 2001 From: Date: Sun, 9 Oct 2016 12:21:41 -0400 Subject: [PATCH 3/3] Formatting Fix --- data_structures/Queue/QueueOnPseudoStack.py | 1 - 1 file changed, 1 deletion(-) diff --git a/data_structures/Queue/QueueOnPseudoStack.py b/data_structures/Queue/QueueOnPseudoStack.py index e1ab68d97..b69fbcc98 100644 --- a/data_structures/Queue/QueueOnPseudoStack.py +++ b/data_structures/Queue/QueueOnPseudoStack.py @@ -15,7 +15,6 @@ class Queue(): self.stack.append(item) self.length = self.length + 1 - """Dequeues {@code item} @requirement: |self.length| > 0 @return dequeued