#(栈可以看做一个子弹夹,压栈就是压子弹,弹栈就是卸子弹,都是从最上面操作)
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())
栈(栈内数据的添加(压栈),删除(弹栈),查询大小,查询是否为空等操作)
最新推荐文章于 2023-08-19 23:31:21 发布