Skip to content

Instantly share code, notes, and snippets.

@Edald123
Last active July 20, 2021 03:05
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 Edald123/7038fc885de88a50744e419183ac992e to your computer and use it in GitHub Desktop.
Save Edald123/7038fc885de88a50744e419183ac992e to your computer and use it in GitHub Desktop.
Queue in Python
from linked_list import Node
class Queue:
def __init__(self, max_size=None):
self.head = None
self.tail = None
self.max_size = max_size
self.size = 0
def enqueue(self, value):
if self.has_space():
item_to_add = Node(value)
print("Adding " + str(item_to_add.get_value()) + " to the queue!")
if self.is_empty():
self.head = item_to_add
self.tail = item_to_add
else:
self.tail.set_next_node(item_to_add)
self.tail = item_to_add
self.size += 1
else:
print("Sorry, no more room!")
# Add your dequeue method below:
def dequeue(self):
if not self.is_empty():
item_to_remove = self.head
print("Removing " + str(item_to_remove.get_value()) + " from the queue!")
if self.get_size() == 1:
self.head = None
self.tail = None
else:
self.head = item_to_remove.get_next_node()
self.size -= 1
return item_to_remove.get_value()
else:
print("This queue is totally empty!")
def peek(self):
if self.is_empty():
print("Nothing to see here!")
else:
return self.head.get_value()
def get_size(self):
return self.size
def has_space(self):
if self.max_size == None:
return True
else:
return self.max_size > self.get_size()
def is_empty(self):
return self.size == 0
# Test cases:
q = Queue(10)
print("The max size of the queue is:", q.max_size)
print("The current size of the queue is:", q.get_size())
print("Is the queue empty?", q.is_empty())
print("Does the queue has space?", q.has_space(), "\n")
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
q.enqueue(5)
q.enqueue(6)
q.enqueue(7)
q.enqueue(8)
q.enqueue(9)
q.enqueue(10)
print("\nThe current size of the queue is:", q.get_size())
print("Is the queue empty?", q.is_empty())
print("Does the queue has space?", q.has_space())
print("The first element added was:", q.peek(), "\n")
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
q.dequeue()
print("\nThe current size of the queue is:", q.get_size())
print("Is the queue empty?", q.is_empty())
print("Does the queue has space?", q.has_space())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment