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 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
python抓取最新博客内容并生成Rss
May 17 Python
Python3.2中Print函数用法实例详解
May 19 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
Python简单定义与使用二叉树示例
May 11 Python
Python Pywavelet 小波阈值实例
Jan 09 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
pytorch模型存储的2种实现方法
Feb 14 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
有关pycharm登录github时有的时候会报错connection reset的问题
Sep 15 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+UTF8多文件上传类
2008/10/17 PHP
php命令行用法入门实例教程
2014/10/27 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP实现简易计算器功能
2020/08/28 PHP
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
keras slice layer 层实现方式
2020/06/11 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
python 实现单例模式的5种方法
2020/09/23 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
安全生产汇报材料
2014/02/17 职场文书
高中班主任评语大全
2014/04/25 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
个人担保书格式范文
2014/05/12 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
python实现三次密码验证的示例
2021/04/29 Python
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android