Skip to content

Instantly share code, notes, and snippets.

@eduardogpg
Last active June 27, 2023 21:15
Show Gist options
  • Save eduardogpg/3babb773c87538a30e49aa810978db3c to your computer and use it in GitHub Desktop.
Save eduardogpg/3babb773c87538a30e49aa810978db3c to your computer and use it in GitHub Desktop.
class QueueFullError(Exception):
pass
class QueueEmptyError(Exception):
pass
class ListQueue():
def __init__(self, size) -> None:
self.items = []
self.front = 0
self.rear = 0
self.size = size
def enqueue(self, data):
if self.full:
raise QueueFullError()
self.items.append(data)
self.rear += 1
def dequeue(self):
if self.empty:
raise QueueEmptyError()
data = self.items.pop(0)
self.rear -= 1
return data
@property
def full(self):
return self.size == self.rear
@property
def empty(self):
return self.rear == 0
queue = ListQueue(3)
queue.enqueue(10)
queue.enqueue(20)
queue.enqueue(30)
print(queue.dequeue())
print(queue.dequeue())
print(queue.dequeue())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment