dailylog 7-30-20
CHALLENGE:
Implement a deque using multiple stacks
addFront(item) addBack(item) item = removeFront() item = removeBack()
stack: pop(), push(), peek(), isEmpty()
example: addFront(1) → d: 1 addFront(3) → d: 13 addBack(7) → d: 713 removeFront() → d: 71 addBack(9) → d: 971 removeFront() → d: 97
pythonic pseudocode!
new Stack()
Class MyStack:
Def __init__(self):
self.mystack = new stack()
Def my_pop():
Return self.mystack.pop()
Def my_push(item):
self.mystack.push(item)
Class Deque:
Def __init__(self):
Self.mystack = new stack()
Self.tempstack = new stack()
Def addStart(item):
While !self.mystack.isEmpty:
Self.tempstack.push(self.mystack.pop())
self.mystack.push(item)
While !self.temptstack.isEmpty:
self.mystack.push(self.tempstack.pop())
Def addEnd(item):
self.mystack.push(item)
Def removeStart():
While !self.mystack.isEmpty:
Self.tempstack.push(self.mystack.pop()) 3 2 1
self.tempstack.pop() /1
While !self.temptstack.isEmpty:
self.mystack.push(self.tempstack.pop()) 2 3
Def RemoveEnd():
Return self.mystack.pop()