python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】


Posted in Python onOctober 24, 2019

本文实例讲述了python栈的基本定义与使用方法。分享给大家供大家参考,具体如下:

# -*- coding:utf-8 -*-
#! python3
#在?C的设计中,我们需要定义一个实例属性top。三个实例方法:获取栈顶元素peek();出?Cpop();入栈push()
#栈的效果:先进后出
class Node(object):  ##节点,包括两个属性,一个是节点的值,一个是节点的下一个指向
 def __init__(self,value):
  self.value = value   #赋值给节点
  self.next = None   #节点的下一个指向
class stack(object):
 def __init__(self):
  self.top = None    #创建栈,赋予top栈顶属性,top初始为空
 def peek(self):     #获取栈顶的元素,返回对应的值
  if self.top!= None:   #如果栈顶不为空,也就是说栈里有数据
   return self.top.value #那就直接返回栈顶的值
  else:
   return None    #如果栈里无数据,则返回None
 def push(self,node):    #添加元素到栈(参数包括self和节点的value,node)
  if node != None:    #如果加入的节点,不为空
   packNode = Node(node)  #实例化Node类
   packNode.next = self.top #将新增的节点的指向赋值为栈顶的指向
   self.top = packNode   #将栈顶的节点,赋值为新增节点
   return packNode.value  #返回节点的值
  else:
   return None    #返回None
 def pop(self):     #出栈
  if self.top == None:  #如果栈是空的
   return None    #返回None
  else:
   tmp = self.top.value  #将栈顶的值传给tmp
   self.top = self.top.next #将栈顶指向变为目前栈顶的下一个节点
   return tmp     #返回出栈的节点的值
s = stack()
a = Node(1)
print(s.push(a).value)
print(s.push(2))
print(s.push(3))
print(s.peek())
print(s.push(4))
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop().value)

运行结果:

1
2
3
3
4
4
3
2
1

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
详解Python安装scrapy的正确姿势
Jun 26 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
python requests 库请求带有文件参数的接口实例
Jan 03 Python
python调用支付宝支付接口流程
Aug 15 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
python pptx复制指定页的ppt教程
Feb 14 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
Python实现aes加密解密多种方法解析
May 15 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 #Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 #Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 #Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 #Python
python模块导入的方法
Oct 24 #Python
python读取word 中指定位置的表格及表格数据
Oct 23 #Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 #Python
You might like
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
开始着手第一个Django项目
2015/07/15 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
Puppeteer使用示例详解
2019/06/20 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
python使用smtplib模块发送邮件
2020/12/17 Python
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
党支部换届选举方案
2014/05/08 职场文书
员工保密协议书
2014/09/27 职场文书
介绍信范文
2015/01/31 职场文书
党员个人承诺书
2015/04/27 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
Golang解析JSON对象
2022/04/30 Golang