• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详解python数据结构之栈stack

python 搞代码 4年前 (2022-01-07) 31次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了详解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() #打印栈数据 

二、进栈与压栈 push_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() 

执行结果:

三、出栈 pop_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() 

执行结果:

四、取栈顶 peek_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) 

执行结果:

到此这篇来源gaodai#ma#com搞*代#码网关于详解python数据结构之栈stack的文章就介绍到这了,更多相关python 栈stack内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是详解python数据结构之栈stack的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解python数据结构之栈stack

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址