python栈stack的基本格式是什么,进栈与出栈操作是怎样
Admin 2022-06-27 群英技术资讯 991 次浏览
今天就跟大家聊聊有关“python栈stack的基本格式是什么,进栈与出栈操作是怎样”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“python栈stack的基本格式是什么,进栈与出栈操作是怎样”文章能对大家有帮助。按照先进后出(FILO,First In Last Out)的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶。栈只能在一端进行插入和删除操作。
文章内容包含:
(1)栈的基本格式
(2)压栈 push_stack
(3)出栈 pop_stack
(4)取栈顶 peek_stack
class Stack():
def __init__ (self,size):
self.size = size #栈空间大小
self.top = -1 #栈中进入一个数据 top 加 1
self.stack = []
def display_stack(self):#栈stack的打印
print(self.stack)
if __name__ == "__main__":
stack = Stack(5) #设定栈空间
stack.display_stack() #打印栈数据
class Stack():
def __init__ (self,size):
self.size = size
self.top = -1
self.stack = [] #进栈数据列表
def display_stack(self):
print(self.stack)
def push_stack(self,data):
if len(self.stack ) >= self.size: #当数据数量大于设置的空间,则栈溢出
print("stack over flow!")
return
self.stack.append(data) #没有栈溢出就将数据追加到列表中
self.top += 1 #栈中每增加一个数据就加 1
if __name__ == "__main__":
stack = Stack(5)
stack.push_stack(0)
stack.push_stack(1)
stack.push_stack(2)
stack.push_stack(3)
stack.push_stack(4)
stack.push_stack(5) #stack空间是 5,这里进栈数据时 6 个,即提示栈溢出stack over flow!
stack.display_stack()
执行结果:

class Stack():
def __init__ (self,size):
self.size = size
self.top = -1
self.stack = [] #进栈数据列表
def display_stack(self):
print(self.stack)
def push_stack(self,data):
if len(self.stack ) >= self.size:
print("stack over flow!")
return
self.stack.append(data)
self.top += 1
def pop_stack(self):
if self.top <= -1: #当top小于等于初始值 -1 时说明stack数据列表为空
print("stack is empty!")
return
ret = self.stack.pop() #stack数据列表不为空就取出最后进的值,列表数据数量就少一个
self.top -= 1
return ret
if __name__ == "__main__":
stack = Stack(5)
stack.push_stack(0)
stack.push_stack(1)
stack.push_stack(2)
stack.push_stack(3)
stack.push_stack(4)
stack.display_stack()
#进栈数据有 5 个,出栈函数调用了 6 次,就出现了提示stack is empty!
ret = stack.pop_stack()
print(ret)
stack.display_stack()
ret = stack.pop_stack()
print(ret)
stack.display_stack()
ret = stack.pop_stack()
print(ret)
stack.display_stack()
ret = stack.pop_stack()
print(ret)
stack.display_stack()
ret = stack.pop_stack()
print(ret)
stack.display_stack()
ret = stack.pop_stack()
print(ret)
stack.display_stack()
执行结果:

class Stack():
def __init__ (self,size):
self.size = size
self.top = -1
self.stack = []
def display_stack(self):
print(self.stack)
def push_stack(self,data):
if len(self.stack ) >= self.size:
print("stack over flow!")
return
self.stack.append(data)
self.top += 1
def peek_stack(self):
if self.top == -1: #当栈内没有数据时 提示 stack is empty!
print("stack is empty!")
return
peek = self.stack[self.top] #栈不为空时,将栈顶的数据提取出来
return peek
if __name__ == "__main__":
stack = Stack(5)
stack.push_stack(0)
stack.push_stack(1)
stack.push_stack(2)
stack.push_stack(3)
stack.push_stack(4)
stack.push_stack(5)
stack.display_stack()
peek = stack.peek_stack()
print(peek)
执行结果:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家分享Python matplotlib绘图设置图例案例,过程会学到edgecolor 图例边框线颜色 facecolor 图例背景色 shadow 是否添加阴影 title 图例标题 fontsize 设置字体大小,小编觉得挺有意思的,感兴趣的小伙伴也可以参考一下
这篇文章主要介绍了pandas如何计算同比环比增长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Python内置函数-setattr()函数。setattr() 函数用于设置属性值,该属性不存在的话就新建该属性并赋值。
网格是从刻度线开始延伸,贯穿至整个绘图区域的辅助线条,它能帮助人们轻松地查看图形的数值。网格按不同的方向可以分为垂直网格的水平网格,这两种网格既可以单独使用,也可以同时使用,常见于添加图表精度、分辨图形细微差别的场景。
同事最近有个需求,需要批量修改文件的名称,这篇文章主要给大家介绍了关于python批量修改文件名的三种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008