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 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
python中的内置函数getattr()介绍及示例
Jul 20 Python
Python标准库之随机数 (math包、random包)介绍
Nov 25 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
python中使用zip函数出现错误的原因
Sep 28 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
python数据库编程 Mysql实现通讯录
Mar 27 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python实现登录与注册系统
Nov 30 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python3 如何开启自带http服务
May 18 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格式化电话号码的方法
2015/04/24 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
python字符串替换示例
2014/04/24 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
经典c++面试题四
2015/05/14 面试题
灵泰克Java笔试题
2016/01/09 面试题
学生就业推荐信
2013/11/13 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
现场施工员岗位职责
2014/03/10 职场文书
审计专业自荐信范文
2014/04/21 职场文书
自主招生推荐信范文
2014/05/10 职场文书
大学生求职信范文
2014/05/24 职场文书
四风问题对照检查材料
2014/09/22 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
PHP正则表达式之RCEService回溯
2022/04/11 PHP
源码安装apache脚本部署过程详解
2022/09/23 Servers