栈(栈内数据的添加(压栈),删除(弹栈),查询大小,查询是否为空等操作)

#(栈可以看做一个子弹夹,压栈就是压子弹,弹栈就是卸子弹,都是从最上面操作)
class zhan: 
    def __init__(self):
        self.stack = []           #定义一个空栈
        self.size = 0  		      # 定义栈的大小为0 
    def __str__(self): 
        return str(self.stack)    #把self.stack转换成字符串
    def __bool__(self):
        return bool(self.stack)   #判断self.stack是否为空
    def yazhan(self,shu):         #把数据从头部插入
        self.stack.append(shu)
        self.size +=1			  # 栈的大小加上1 
    def tanzhan(self):  		  #把数据从头部删除
        if self.stack is None :
            raise  Exception("kong")   # 如果列表是空的,则报一个“kong”
        else:
            self.stack.pop()
            self.size -= 1 			   # 栈的大小减去1 
    def  peek(self):				   # 查看栈的顶部的值(头部)
        if self.stack is None :
            raise  Exception("kong")
        else :
            s= self.stack.pop()
            return s
    def is_empty(self):                # 查看栈是否为空,空就返回True
        return not bool(self.stack)
    def size1(self):  				   # 查看栈的大小
        return  self.size
        
if __name__ == '__main__': 			   # 输出
    s = zhan()
    for i in range(10):
        s.yazhan(i)
    print(s)
    for f in range(5):
        s.tanzhan()
    print(s)
    print(s.is_empty())
    print(s.size1())
    print(s.peek())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值