Skip to content

Instantly share code, notes, and snippets.

@andreytwostep
Last active September 27, 2017 06:28
Show Gist options
  • Save andreytwostep/3afcf242e4ac5d1103948634bd06bfaf to your computer and use it in GitHub Desktop.
Save andreytwostep/3afcf242e4ac5d1103948634bd06bfaf to your computer and use it in GitHub Desktop.
class Queue:
def __init__(self):
self.array = []
def is_empty(self):
return len(self.array) == 0
def enqueue(self, value):
self.array.append(value)
def dequeue(self):
if self.is_empty():
return None
val = self.array[0]
self.array.remove(val)
return val
class LinkedList(object):
def __init__(self, data = None):
self.value = data
self.next = None
class Queue:
def __init__(self):
self.first = None
self.last = None
def is_empty(self):
return self.first == None
def enqueue(self, value):
node = LinkedList(value)
if self.is_empty():
self.first = node
self.last = self.first
else:
current_last = self.last
current_last.next = node
self.last = node
def dequeue(self):
if self.is_empty():
self.last = None
return self.last
data = self.first.value
next = self.first.next
if next is None:
self.first = None
self.last = None
else:
self.first = next
return data
q = Queue()
print q.dequeue()
q.enqueue('first')
print q.dequeue()
q.enqueue('1')
q.enqueue('2')
q.enqueue('3')
print q.dequeue()
q.enqueue('4')
print q.dequeue()
print q.dequeue()
print q.dequeue()
print q.dequeue()
# Output:
# None
# first
# 1
# 2
# 3
# 4
# None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment