9. 用两个栈实现队列
完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
【题解】
栈STACK:先进后出,后进先出
队列QUEUE:先进先出,后进后出
stack_add负责在队列尾部插入整数;stack_del负责删除队列头部整数的操作。
python解题:
class CQueue: def __init__(self): self.stack_add = [] self.stack_del = [] def appendTail(self, value: int) -> None: self.stack_add.append(value) def deleteHead(self) -> int: if not self.stack_add: return -1 else: while self.stack_add: self.stack_del.append(self.stack_add.pop()) dell = self.stack_del.pop() while self.stack_del: self.stack_add.append(self.stack_del.pop()) return dell # Your CQueue object will be instantiated and called as such: # obj = CQueue() # obj.appendTail(value) # param_2 = obj.deleteHead()
C++解题:
后续再更

浙公网安备 33010602011771号