python构造栈结构
2021/4/23 12:25:28
本文主要是介绍python构造栈结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
栈:是一种先进后出的数据结构;本片文章,我们用python的面向对象来构造这样的数据结构。
栈中的每一个数据除了存储当前的数值外,还存储着当前数值下一个数据的类型(注意不是下一个数据的数值)。
class Node(object): # 栈中的每一个结点有两个属性,一个是当前的数值,另一个是下一个节点的值。 def __init__(self,value=None): self.value = value self.next = 0class stack(object): def __init__(self): self.node = Node() self.lstack = [self.node, ] def push(self,elem): # 定义入栈的函数 oldnode = self.lstack[0] item = Node(elem) # 把这个数值实例化为栈中的数据类型 if oldnode.value == None: # 如果是第一个值,则当前value为当前值,next值为0; 这里的第一个值是要放入栈底的,因此它的next值W为0! item.value = elem item.next = 0 else: item.value = elem # 如果不是第一个值,则当前值为当前值,next值为紧邻的那个值的数据类型, item.next = oldnode self.lstack.append(item) # 把新的数据节点加入到lstack列表 self.lstack.pop(0) # 然后去除列表中的上一次的数据节点,最后一个节点加入之后,lstack列表中存储的就是最上面的那个节点类型。 def popitem(self): # 定义出栈的函数 upnode = self.lstack[0] print(upnode.value) self.lstack.append(upnode.next) self.lstack.pop(0)
向栈中压入三个数值:
#压入元素s = stack() s.push("A") s.push("B") s.push("C")#取出元素s.popitem() s.popitem() s.popitem()---------------执行结果---------------C B A
这篇关于python构造栈结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识