剑指 offer_第五题_用两个栈实现队列

平台

牛客网

语言

python2.7.3

作业内容

题目描述

用两个栈来实现一个队列, 完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。

题目理解

什么是栈?

栈(有时称为 “后进先出栈”)是一个项的有序集合,这种排序原则有时被称为 LIFO(后进先出), 其中添加移除新项总发生在同一端。这一端通常称为 “顶部”。与顶部对应的端称为 “底部”。

什么是队列?

队列是项的有序结合,其中添加新项的一端称为队尾,移除项的一端称为队首。这种排序原则有时被称为 FIFO(先进先出)当一个元素从队尾进入队列时,一直向队首移动,直到它成为下一个需要移除的元素为止。

push:将元素放进队尾

pop: 将队顶的元素删除,并返回

解题思路

定义栈

定义 push 和 pop 函数

程序

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1 = []  #定义两个stack,
        self.stack2 = []
    def push(self, node):        
        self.stack1.append(node) #往队列中添加元素,将元素放进队尾
    def pop(self): # 没看懂啊
        
        if len(self.stack2):
            return self.stack2.pop()
        while(self.stack1):
            self.stack2.append(self.stack1.pop())
        return self.stack2.pop()    

猜你喜欢

转载自blog.csdn.net/Heitao5200/article/details/82947795
今日推荐