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++解题:

后续再更

posted @ 2021-09-12 21:35  熊猫blue  阅读(41)  评论(0)    收藏  举报