Skip to content

Instantly share code, notes, and snippets.

@TheAlchemistKE
Created June 6, 2023 13:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TheAlchemistKE/148aa2b76c80005a91fb432b978a2de5 to your computer and use it in GitHub Desktop.
Save TheAlchemistKE/148aa2b76c80005a91fb432b978a2de5 to your computer and use it in GitHub Desktop.
class CircularQueue:
def __init__(self, k):
self.queue = [None] * k
self.head = self.tail = -1
self.size = 0
def enqueue(self, item):
if self.is_full():
return False
if self.is_empty():
self.head = 0
self.tail = (self.tail + 1) % len(self.queue)
self.queue[self.tail] = item
self.size += 1
return True
def dequeue(self):
if self.is_empty():
return None
item = self.queue[self.head]
if self.head == self.tail:
self.head = self.tail = -1
else:
self.head = (self.head + 1) % len(self.queue)
self.size -= 1
return item
def is_empty(self):
return self.size == 0
def is_full(self):
return self.size == len(self.queue)
def get_size(self):
return self.size
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment