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之正规地说一句话
Sep 28 Python
python实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
python如何爬取网页中的文字
Jul 28 Python
Python中logger日志模块详解
Aug 04 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
Python+Tkinter打造签名设计工具
Apr 01 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 读取shell管道传输过来的内容
2010/03/01 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
node内置调试方法总结
2018/02/22 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
python的常见命令注入威胁
2013/02/18 Python
python str与repr的区别
2013/03/23 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
flask中过滤器的使用详解
2018/08/01 Python
python中pika模块问题的深入探究
2018/10/13 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
Django实现跨域的2种方法
2019/07/31 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python datetime处理时间小结
2020/04/16 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
早会主持词
2014/03/17 职场文书
超市活动计划书
2014/04/24 职场文书
食品安全工作方案
2014/05/07 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
公司员工体检通知
2015/04/21 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python