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命令行参数sys.argv使用示例
Jan 28 Python
python实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
Python中datetime常用时间处理方法
Jun 15 Python
Python聊天室实例程序分享
Jan 05 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
基于python的ini配置文件操作工具类
Apr 24 Python
python中for循环变量作用域及用法详解
Nov 05 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
通过代码实例解析Pytest运行流程
Aug 20 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调用数据库的存贮过程
2006/10/09 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
javascript 函数调用规则
2009/08/26 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
python保留小数位的三种实现方法
2020/01/07 Python
基于python3实现倒叙字符串
2020/02/18 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
python实现自动打卡的示例代码
2020/10/10 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
ORACLE第二个十问
2013/12/14 面试题
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
2015年端午节活动总结
2015/02/11 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android