位置: 编程技术 - 正文

Python算法应用实战之栈详解(python算法怎么用)

编辑:rootadmin

推荐整理分享Python算法应用实战之栈详解(python算法怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python算法基础,python的算法,python算法研究,python算法基础,python算法案例,python算法基础,python算法基础,python算法基础,内容如对您有帮助,希望把文章链接给更多的朋友!

栈(stack)

栈又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作。

如下图所示

例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最后一个,而最后放入弹匣的一颗子弹在打出去的时候是第一颗发射出去的。

栈的接口

如果你创建了一个栈,那么那么应该具有以下接口来进行对栈的操作

接口 描述 push() 入栈 pop() 出栈 isEmpty() 判断是否为空栈 length() 获取栈的长度 getTop() 取栈顶的元素,元素不出栈

知道栈需要上述的接口后,那么在Python中,列表就类似是一个栈,提供接口如下:

操作 描述 s = [] 创建一个栈 s.append(x) 往栈内添加一个元素 s.pop() 在栈内删除一个元素 not s 判断是否为空栈 len(s) 获取栈内元素的数量 s[-1] 获取栈顶的元素

Python中的栈接口使用实例:

一大波实例

在了解栈的基本概念之后,让我们再来看几个实例,以便于理解栈。

括号匹配

题目

假如表达式中允许包含三中括号()、[]、{},其嵌套顺序是任意的,例如:

正确的格式

错误的格式

编写一个函数,判断一个表达式字符串,括号匹配是否正确

思路

创建一个空栈,用来存储尚未找到的左括号; 便利字符串,遇到左括号则压栈,遇到右括号则出栈一个左括号进行匹配; 在第二步骤过程中,如果空栈情况下遇到右括号,说明缺少左括号,不匹配; 在第二步骤遍历结束时,栈不为空,说明缺少右括号,不匹配;Python算法应用实战之栈详解(python算法怎么用)

解决代码

建议在pycharm中打断点,以便于更好的理解

迷宫问题

题目

用一个二维数组表示一个简单的迷宫,用0表示通路,用1表示阻断,老鼠在每个点上可以移动相邻的东南西北四个点,设计一个算法,模拟老鼠走迷宫,找到从入口到出口的一条路径。

如图所示

出去的正确线路如图中的红线所示

思路

用一个栈来记录老鼠从入口到出口的路径 走到某点后,将该点左边压栈,并把该点值置为1,表示走过了; 从临近的四个点中可到达的点中任意选取一个,走到该点; 如果在到达某点后临近的4个点都不走,说明已经走入死胡同,此时退栈,退回一步尝试其他点; 反复执行第二、三、四步骤直到找到出口;

解决代码

后缀表达式求值

题目

计算一个表达式时,编译器通常使用后缀表达式,这种表达式不需要括号:

中缀表达式 后缀表达式 2 + 3 * 4 2 3 4 * + ( 1 + 2 ) * ( 6 / 3 ) + 2 1 2 + 6 3 / * 2 + / ( 3 * ( 1 + 2 ) ) 3 1 2 + * /

编写程序实现后缀表达式求值函数。

思路

建立一个栈来存储待计算的操作数; 遍历字符串,遇到操作数则压入栈中,遇到操作符号则出栈操作数(n次),进行相应的计算,计算结果是新的操作数压回栈中,等待计算 按上述过程,遍历完整个表达式,栈中只剩下最终结果;

解决代码

背包问题

题目

有一个背包能装kg的物品,现在有6件物品分别为:

物品名称 重量 物品0 1kg 物品1 8kg 物品2 4kg 物品3 3kg 物品4 5kg 物品5 2kg

编写找出所有能将背包装满的解,如物品1+物品5。

解决代码

总结

标签: python算法怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/380033.html 转载请保留说明!

上一篇:Python算法应用实战之队列详解(python算法的应用)

下一篇:Django应用程序中如何发送电子邮件详解(django应用开发实战)

  • 非居民纳税机构都包含哪些?
  • 企业所得税如何做分录
  • 养猪场死猪处理方法
  • 税务登记网上怎么做
  • 个人所得税扣缴申报表
  • 劳务公司如何避税与避费
  • 哪些邮政业务可以寄快递
  • 土地增值税多交了怎么处理
  • 上一年度多计提折旧怎么调整
  • 出纳人员怎么核酸检测
  • 跨月的普票怎么作废从系统里作废
  • 社保上面的每月的缴费基数是什么意思?
  • etc设备有区别吗
  • 税收滞纳金什么意思
  • 生物资产出售的账务处理
  • 税控技术服务费怎么做账
  • 代发工资超过5000 可以不交税吗
  • 技术转让税收优惠政策500万
  • 高新技术企业退税比例是多少
  • 报税提示您可能缺少相关组件怎么处理
  • 工会经费计税依据是上年工资还是当年工资
  • 总分类账的账簿启用表怎么填
  • 出售固定资产属于收入
  • 资金使用计划表怎么写
  • 建安企业核定征收改查账征收后怎么处理账目
  • 在Linux系统中安装了一块虚拟磁盘大小的2G
  • 国企承接政府项目
  • 返利是冲减收入吗
  • 增值税四个税种
  • 货物质量赔偿需要改变收入吗合法吗
  • 金税卡服务费抵扣政策
  • macbookpro安装mysql
  • 苹果电脑付款方式设置
  • 企业对员工罚款的法律依据
  • 现金长款和短款怎么处理
  • 如何确定赞助对象
  • php功能实现
  • 外币存款业务
  • 固定资产折旧加计扣除
  • 不锈餐具有几种材质
  • 埃菲尔铁塔翻绳的方法
  • mysql框架有哪些
  • 背书转让的步骤
  • php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
  • EOFError:EOF when reading a line
  • mongodb使用教程
  • 资产处置损益明细表货币资金怎么填
  • 两个公司可以是一个注册地址吗
  • 会展服务打印费怎么算
  • 出口报关单运费单位怎么填
  • mysql密码忘了咋办
  • 固定资产清理税务处理
  • 外贸企业增值税申报
  • 应收账款计提的坏账准备可以转回
  • 无形资产研究阶段发生的支出应该全部费用化
  • 专项补助资金的账务处理
  • 研发费用范围不包括
  • 代销货物收取手续费计入
  • 租入办公楼装修费按几年摊销
  • 低值易耗品怎么做账务处理
  • mysql数据库开发技术
  • mysql从一张表复制数据到另一张表
  • fedora linux安装教程
  • wind10手机
  • linux网络协议栈内核分析
  • 手动ghost恢复
  • 苹果mac系统如何升级最新版本
  • 重装系统开机出现几个系统
  • win7怎么开不了机
  • linux关闭sh
  • node 操作mysql
  • css网站布局实录 pdf
  • 使用多进程web
  • 菜鸟教程安卓开发
  • unity il2cpp热更新
  • 安卓编程视频教程
  • unity 3d游戏开发(第2版)
  • 陕西省国家税务局总局官网
  • 西安二手房几年可以过户
  • 宁夏回族自治区房产税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设