Created
November 10, 2014 11:35
-
-
Save praveenvvstgy/b42d7b7ebdb3a97b62fc to your computer and use it in GitHub Desktop.
Implement a queue with 2 stacks . Your queue should have an enqueue and a dequeue function and it should be "first in first out" (FIFO). Optimize for the time cost of m function calls on your queue. These can be any mix of enqueue and dequeue calls. Assume you already have a stack implementation and it gives O(1) time push and pop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
stack1 = [] | |
stack2 = [] | |
def enqueuue(a): | |
stack1.append(a) | |
def dequeue(): | |
if len(stack2) > 0: | |
return stack2.pop() | |
elif len(stack2) == 0 and len(stack1) > 0: | |
while(len(stack1) > 0): | |
stack2.append(stack1.pop()) | |
return stack2.pop() | |
else: | |
return "Stack Underflow" | |
print dequeue() | |
enqueue(10) | |
enqueue(9) | |
enqueue(8) | |
print dequeue() | |
print dequeue() | |
enqueue(7) | |
print dequeue() | |
print dequeue() | |
print dequeue() | |
enqueue(6) | |
print dequeue() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment