Skip to content

Instantly share code, notes, and snippets.

@yokiy
Last active August 29, 2015 14:03
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 yokiy/6e167df8c936e92241d9 to your computer and use it in GitHub Desktop.
Save yokiy/6e167df8c936e92241d9 to your computer and use it in GitHub Desktop.
cc 3.5
# cc 3.5 Implement a MyQUeue class which implements a queue using two stacks
from stack import Stack
class MyQueue:
def __init__(self):
self.inque = Stack()
self.outque = Stack()
def enqueue(self, item):
self.inque.push(item)
def dequeue(self):
if self.outque.size > 0:
result = self.outque.pop()
else:
while self.inque.size > 0:
out = self.inque.pop()
self.outque.push(out)
result = self.outque.pop()
return result
def printQueue(self):
if self.inque.size > 0:
self.inque.printStack(),
if self.outque.size > 0:
print '--->',
stack= Stack()
while self.outque.size > 0:
out = self.outque.pop()
stack.push(out)
if stack.size > 0:
stack.printStack()
#test
test = MyQueue()
test.enqueue(5)
test.enqueue(8)
test.enqueue(4)
test.enqueue(2)
test.printQueue()
print '\nafter dequeue:'
test.dequeue()
test.dequeue()
test.printQueue()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment