dailylog 7-30-20

less than 1 minute read

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()