Python用两个栈实现队列

原创 2018年04月16日 22:53:32

思想:用A栈存储入队的数据,出队时先把A栈的数据全部pop进B栈,再对B栈进行pop操作。

Python代码如下:

# -*- coding:utf-8 -*-


class Stack(object):
    # 初始化栈为空列表
    def __init__(self):
        self.stack = []


    # 判断栈是否为空,返回布尔值
    def is_empty(self):
        return self.stack == []


    # 返回栈顶元素
    def peek(self):
        return self.stack[len(self.stack) - 1]


    # 返回栈的大小
    def size(self):
        return len(self.stack)


    # 入栈
    def push(self, item):
        self.stack.append(item)


    # 出栈
    def pop(self):
        return self.stack.pop()




class Solution:
    stack_first = Stack()
    stack_second = Stack()


    def push(self, node):
        self.stack_first.push(node)


    def pop(self):
        if self.stack_second.is_empty() == False:
            return self.stack_second.pop()
        else:
            while self.stack_first.is_empty() == False:
                self.stack_second.push(self.stack_first.pop())
        return self.stack_second.pop()

【Python全栈】第五周 Python Web项目开发实现(上)

本周课程主要讲解通过Django框架搭建Web商城项目,并且开发了网站的后台模块。具体内容有:项目开发流程介绍,商城项目需求分析、数据库设计和项目程序设计,使用Django框架搭建Web商城项目主体结构。开发了商城项目的后台管理:登陆与退出、会员信息管理、商品类别管理和商品信息管理等模块。
  • 2018年04月09日 22:16

【剑指Offer】用两个栈来实现队列 解题报告(python)

【剑指Offer】用两个栈来实现队列 解题报告(python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-inter...
  • fuxuemingzhu
  • fuxuemingzhu
  • 2018-03-09 16:34:22
  • 47

7用两个栈实现队列python

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:1、用一个栈实现进队,另一个栈实现出队 2、需要进队的时候把元素压如stack1中,需要出队的时候把st...
  • slibra_L
  • slibra_L
  • 2017-09-26 16:03:44
  • 123

Python剑指offer之两个栈实现一个队列-两个队列实现一个栈

栈与队列之间的相互实现,是面试中的经典试题。 两个栈实现一个队列 入队:元素进栈A 出队:先判断栈B是否为空,为空则将栈A中的元素 pop 出来并 push 进栈B,再栈B出栈,如不为空则栈...
  • songyunli1111
  • songyunli1111
  • 2018-02-22 16:19:14
  • 198

Python :用两个栈实现队列

牛客网上的剑指 offer的在线编程: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 # -*- coding:utf-8 -*- class...
  • Lynette_bb
  • Lynette_bb
  • 2017-07-13 21:17:04
  • 1267

简单题_用两个栈实现队列和用两个队列实现一个栈

题目:用两个栈实现一个队列。队列的生命如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 template class CQu...
  • u010003835
  • u010003835
  • 2016-06-07 09:28:13
  • 1244

(LeetCode)用两个栈实现一个队列

LeetCode上面的一道题目,原文如下: Implement the following operations of a queue using stacks. push(x) --...
  • snchenjt
  • snchenjt
  • 2015-07-14 10:59:15
  • 1193

两个栈实现一个队列,两个队列实现一个栈

问题1:用两个栈实现一个队列,实现队列的push和delete操作 栈的特性是先进后出(FILO),队列的特性是先进先出(FIFO),在实现delete时,我们的难点是如何将栈中最底层的数据拿出来,...
  • zw_1510
  • zw_1510
  • 2016-07-17 00:32:26
  • 7336

Leetcode 225,232 用两个队列实现栈,用两个栈实现队列

Leetcode 225,232 用两个队列实现栈,用两个栈实现队列232 Implement Queue using Stacks My Submissions Question Total A...
  • smtctc
  • smtctc
  • 2016-01-11 14:26:25
  • 357

两个栈实现一个队列以及两个队列实现一个栈(Java)

两个栈实现一个队列import java.util.Stack;public class Demo07 { Stack stack1 = new Stack(); Stack stac...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015-09-02 10:51:44
  • 5593
收藏助手
不良信息举报
您举报文章:Python用两个栈实现队列
举报原因:
原因补充:

(最多只允许输入30个字)