From 0f69dfe6816884e65919bd9828fe366bda8a73aa Mon Sep 17 00:00:00 2001 From: kaitlyngore Date: Mon, 18 Jul 2022 09:22:02 -0400 Subject: [PATCH 1/2] stack tests passing --- stacks_queues/stack.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/stacks_queues/stack.py b/stacks_queues/stack.py index 94fb2a6..15de5d6 100644 --- a/stacks_queues/stack.py +++ b/stacks_queues/stack.py @@ -12,7 +12,8 @@ def push(self, element): """ Adds an element to the top of the Stack. Returns None """ - pass + + return self.store.add_first(element) def pop(self): """ Removes an element from the top @@ -21,13 +22,19 @@ def pop(self): The Stack is empty. returns None """ - pass + if self.store.head == None: + raise StackEmptyException("The stack is empty") + + return self.store.remove_first() def empty(self): """ Returns True if the Stack is empty And False otherwise """ - pass + if self.store.head == None: + return True + else: + return False def __str__(self): """ Returns the Stack in String form like: @@ -35,4 +42,4 @@ def __str__(self): Starting with the top of the Stack and ending with the bottom of the Stack. """ - pass + return str(self.store) From 6d23a26d3e7bbc8fa86bbbc3b26eff3a292ea587 Mon Sep 17 00:00:00 2001 From: kaitlyngore Date: Mon, 18 Jul 2022 09:24:07 -0400 Subject: [PATCH 2/2] queue tests passing --- stacks_queues/queue.py | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/stacks_queues/queue.py b/stacks_queues/queue.py index d66dab2..463b072 100644 --- a/stacks_queues/queue.py +++ b/stacks_queues/queue.py @@ -15,7 +15,6 @@ def __init__(self): self.front = -1 self.rear = -1 self.size = 0 - def enqueue(self, element): """ Adds an element to the Queue @@ -23,34 +22,50 @@ def enqueue(self, element): In the store are occupied returns None """ - pass + if self.front == -1: + self.front = 0 + self.rear = 0 + if self.size == self.buffer_size: + raise QueueFullException('Queue is full') + + self.store[self.rear] = element + self.rear = (self.rear + 1) % self.buffer_size + self.size += 1 def dequeue(self): """ Removes and returns an element from the Queue Raises a QueueEmptyException if The Queue is empty. """ - pass + if self.front == -1: + raise QueueEmptyException("The queue is empty") + element = self.store[self.front] + self.store[self.front] = None + self.size -= 1 + self.front = (self.front + 1) % self.buffer_size + + return element def front(self): """ Returns an element from the front of the Queue and None if the Queue is empty. Does not remove anything. """ - pass + + return self.store[self.front] def size(self): """ Returns the number of elements in The Queue """ - pass + return self.size def empty(self): """ Returns True if the Queue is empty And False otherwise. """ - pass + return (self.size == 0) def __str__(self): """ Returns the Queue in String form like: @@ -58,4 +73,11 @@ def __str__(self): Starting with the front of the Queue and ending with the rear of the Queue. """ - pass + list = [] + + for i in range(self.size): + list.append(self.store[(self.front + i) % self.buffer_size]) + + string = str(list) + return string +