Python用list实现堆栈和队列

详细版本见个人博客:Python用list实现堆栈和队列


Python中可以用list来模拟栈和队列:

  • 栈(stack):只能在一端进行数据操作,遵循后进先出(LIFO)原则
  • 队列(queue):可以在两端进行数据操作,遵循先进先出(FIFO)原则,出队列的一端称为队首,入队列的一端称为队尾

一、栈

1、栈要记录的数据

  • 栈顶位置top:注意这个top有两种理解方式,一种是表示栈的最后一个数据的位置,另一种是表示栈的最后一个数据的下一个位置,这两种理解对栈的操作代码有一定的影响
  • 栈最大大小size

2、栈的操作

  • isEmpty():判断栈是否为空
  • isFull():判断栈是否已满
  • push(element):向栈中添加一个值,注意栈是否为满的
  • pop():从栈中弹出一个值,注意栈是否为空

3、Python列表实现栈

class StackException(Exception):
    def __init__(self, data):
        self.data = data
    def __str__(self):
        return self.data

class Stack(object):
    def __init__(self,size = 10):
        self.S = []
        self.size = size  # 栈大小
        self.top = -1     # 栈顶位置

    def setSize(self, size):
        # 设置栈的大小
        self.size = size    

    def isEmpty(self):
        # 判断栈是否为空
        if self.top == -1:
            return True
       
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值