基于python实现顺序存储的栈
"""
栈 sstack.py 栈模型的顺序存储
重点代码 思路总结:
1.列表是顺序存储,但功能多,不符合栈的模型特征
2.利用列表,将其封装,提供接口方法
""" # 自定义异常类
class StackError(Exception):
pass # 顺序栈类
class SStack:
def __init__(self):
# 空列表作为栈的存储空间,限制封装
# 列表的最后一个元素作为栈顶
self._elems = [] # 单下划线不希望类外使用 # 入栈
def push(self,val):
self._elems.append(val) # 出栈,重新定义方法
def pop(self):
if self.is_empty():
raise StackError("Stack is empty")
return self._elems.pop() # 弹出并返回 # 判断列表是否为空
def is_empty(self):
return self._elems ==[] # 空返回True # 查看栈顶元素
def top(self):
if self.is_empty():
raise StackError("Stack is empty")
return self._elems[-1] # -------------------------
print("-"*30)
#if __name__ == " __main__":
# st = SStack() # 初始化栈
# # 测试
# st.push(10)
# st.push(20)
# st.push(30)
# while not st.is_empty():
# print(st.pop())
# ------------------------- """
逆波兰表达式的实现,遇数字压入-push,
遇运算符弹出-pop 运算后再压入,P查看-top
""" # st = SStack()
#
# while True:
# exp = input("请输入:") # 1 2 5 4 + 1 4 p
# tmp = exp.split(" ")
# # print(tmp) # ['1', '2', '5', '4', '+', '1', '4', 'p']
#
# for item in tmp:
# if item not in ["+","-","*","/","p"]:
# st.push(int(item))
# elif item == "+":
# y = st.pop()
# x = st.pop()
# st.push(x + y)
# elif item == "-":
# y = st.pop()
# x = st.pop()
# st.push(x - y)
# elif item == "*":
# y = st.pop()
# x = st.pop()
# st.push(x * y)
# elif item == "/":
# y = st.pop()
# x = st.pop()
# st.push(x / y)
# elif item == "p":
# print(st.top())
基于python实现顺序存储的栈的更多相关文章
- 基于python实现顺序存储的队列代码
""" 队列-顺序存储 seqqueue.py 代码实现 """ # 自定义异常类 class QueueError(Exception): ...
- 基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)
基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 个人技术博客:http://www.cnblogs.com/M ...
- Python Base of Scientific Stack(Python基础之科学栈)
Python Base of Scientific Stack(Python基础之科学栈) 1. Python的科学栈(Scientific Stack) NumPy NumPy提供度多维数组对象,以 ...
- 基于python的爬虫项目
一.项目简介 1.1 项目博客地址 https://www.cnblogs.com/xsfa/p/12083913.html 1.2 项目完成的功能与特色 爬虫和拥有三个可视化数据分析 1.3 项目采 ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”
上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...
- 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解
文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
随机推荐
- @RequestBody使用说明
@RequestBody 使用 @RequestBody这个对于一般刚接触来说,确实有点陌生,但是现在前端,后端技术分的太细,越来越多的技术层出不穷,前端就分化出POST ,GET,PUT,DELET ...
- UI自动化时,解决selenium中无法点击Element:ElementClickInterceptedException
在跑自动化时,页面上有2个下拉框,两个下拉框无论屏蔽哪一段都会成功,但是同时放开跑时会报错,百度给的解释是上面的下拉框元素覆盖了下面下拉框的元素定位,才会导致报错 百度的解决办法有2种: elemen ...
- 详解usbmon抓取的log各字段的含义
详解 usbmon 抓取的 log 各字段的含义 在上篇文章中,我们已经介绍了如何在 linux 下使用 usbmon 抓取 usb 总线上数据的方法.(https://www.cnblogs.com ...
- [LeetCode]230. 二叉搜索树中第K小的元素(BST)(中序遍历)、530. 二叉搜索树的最小绝对差(BST)(中序遍历)
题目230. 二叉搜索树中第K小的元素 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 题解 中序遍历BST,得到有序序列,返回有序序列的k-1号元素. 代 ...
- ActiveMQ客户端Apache.NMS从.net 4.0移植到.net standard 2.0
1.从官网或GitHub下载Apache.NMS源码 2.新建.net standard 2.0类库 3.将源码复制到新建的类库中,并删除或注释CommonAssemblyInfo.cs文件(程序集版 ...
- 云计算openstack核心组件——neutron网络服务(9)
一.虚拟机获取 ip: 用 namspace 隔离 DHCP 服务 Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 通过 Linux Network Namespa ...
- 虚拟机系列 | JVM特点,基础结构与执行周期
本文源码:GitHub·点这里 || GitEE·点这里 一.虚拟机简介 1.虚拟机概念 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整 ...
- 如何解决Python下 pip install module 下载慢解决方法?
对于Python来编程的用户最大的一个痛点就是,下载模块是下载速度特别慢,那么有没有解决方法呢? 换Python的pip下载源 1.首先安装一个模块 pqi,在cmd下 pip install pqi ...
- 【大数据】深入源码解析Map Reduce的架构
这几天学习了MapReduce,我参照资料,自己又画了两张MapReduce的架构图. 这里我根据架构图以及对应的源码,来解释一次分布式MapReduce的计算到底是怎么工作的. 话不多说,开始! ...
- KONGA下的HAMC插件功能 --JAVA代码实现
设置HAMC插件 postman模拟请发发送: Java代码: HMAC-SHA-256工具类 1 import java.security.InvalidKeyException; 2 impor ...