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 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
网站渗透常用Python小脚本查询同ip网站
May 08 Python
Python类的继承和多态代码详解
Dec 27 Python
python使用KNN算法手写体识别
Feb 01 Python
python3之模块psutil系统性能信息使用
May 30 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
python GUI模拟实现计算器
Jun 22 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 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
php5.2时间相差8小时
2007/01/15 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
学校介绍信范文
2014/01/14 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
鸿星尔克广告词
2014/03/21 职场文书
房产买卖委托公证书
2014/04/04 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
财务稽核岗位职责
2015/04/13 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
利用Python判断你的密码难度等级
2021/06/02 Python
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
手把手教你导入Go语言第三方库
2021/08/04 Golang