From b81091b8e79a0420dda9de44a5558c9a011cc1a2 Mon Sep 17 00:00:00 2001 From: Chris M Date: Tue, 12 Apr 2022 09:20:03 -0700 Subject: [PATCH 1/2] change comment description of linked list --- stacks_queues/linked_list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks_queues/linked_list.py b/stacks_queues/linked_list.py index 3cb0aa4..584e8c4 100644 --- a/stacks_queues/linked_list.py +++ b/stacks_queues/linked_list.py @@ -2,7 +2,7 @@ class EmptyListError(Exception): pass -# Defines a node in the singly linked list +# Defines a node in the doubly linked list class Node: def __init__(self, value, next_node = None, previous_node = None): self.value = value From fd2c8307c252efcd00dfda3a937a9c34c7385bf8 Mon Sep 17 00:00:00 2001 From: dynamicdev3000 Date: Wed, 25 May 2022 14:23:02 -0400 Subject: [PATCH 2/2] completed passing all tests --- stacks_queues/queue.py | 45 ++++++++++++++++++++++++++++++++++-------- stacks_queues/stack.py | 8 ++++---- 2 files changed, 41 insertions(+), 12 deletions(-) diff --git a/stacks_queues/queue.py b/stacks_queues/queue.py index d66dab2..0ddd2fc 100644 --- a/stacks_queues/queue.py +++ b/stacks_queues/queue.py @@ -13,9 +13,8 @@ def __init__(self): self.store = [None] * INITIAL_QUEUE_SIZE self.buffer_size = INITIAL_QUEUE_SIZE self.front = -1 - self.rear = -1 + self.rear = 0 self.size = 0 - def enqueue(self, element): """ Adds an element to the Queue @@ -23,34 +22,55 @@ def enqueue(self, element): In the store are occupied returns None """ - pass + if self.front == -1: + self.front = 0 + self.rear = 0 + elif self.size == self.buffer_size: + raise QueueFullException + + 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 + else: + value = self.store[self.front] + self.front = (self.front + 1) % self.buffer_size + self.size -= 1 + if self.front == self.rear: + self.front = -1 + self.rear = -1 + return value def front(self): """ Returns an element from the front of the Queue and None if the Queue is empty. Does not remove anything. """ - pass + if self.front == -1: + return None + return self.store[self.front] def size(self): """ Returns the number of elements in The Queue """ - pass + if self.front == -1: + return 0 + return self.size def empty(self): """ Returns True if the Queue is empty And False otherwise. """ - pass + return self.front == -1 def __str__(self): """ Returns the Queue in String form like: @@ -58,4 +78,13 @@ def __str__(self): Starting with the front of the Queue and ending with the rear of the Queue. """ - pass + result = [] + index = self.front + size = self.size + + for x in range(size): + result.append(self.store[index]) + index = (index + 1) % self.buffer_size + size -= 1 + return str(result) + diff --git a/stacks_queues/stack.py b/stacks_queues/stack.py index 94fb2a6..1017817 100644 --- a/stacks_queues/stack.py +++ b/stacks_queues/stack.py @@ -12,7 +12,7 @@ def push(self, element): """ Adds an element to the top of the Stack. Returns None """ - pass + self.store.add_first(element) def pop(self): """ Removes an element from the top @@ -21,13 +21,13 @@ def pop(self): The Stack is empty. returns None """ - pass + return self.store.remove_first() def empty(self): """ Returns True if the Stack is empty And False otherwise """ - pass + return self.store.empty() def __str__(self): """ Returns the Stack in String form like: @@ -35,4 +35,4 @@ def __str__(self): Starting with the top of the Stack and ending with the bottom of the Stack. """ - pass + return str(self.store)