位置: 编程技术 - 正文

PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器完整实例(栈定义代码)

编辑:rootadmin

推荐整理分享PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器完整实例(栈定义代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php定义接口,php栈与队列的区别,栈定义代码,php实现栈结构,php技术栈有哪些,php栈与队列的区别,php栈与队列的区别,php出栈函数,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器。分享给大家供大家参考,具体如下:

栈是线性表的一种,他的特点是后入先出,可以这么理解,栈就像一个存东西的盒子,先放进去的在最底层,后放进去的在上层,因为上层的东西把底层的东西压住了,下层的想要出去就必须把上层的先拿开才行。

介绍代码:

data类:就是存放数据的类。()就是要放入栈的东西stack类:是栈的类,整个对栈就在这个类中

主要方法:

入栈push_stack($data)检测栈是否已满,如果没满就让数据入栈。出栈pop_stack($data)检测栈是否为空,如果不空可以出栈读取栈顶元素top_stack()如果栈不空,返回当前栈顶部的数据。

下边是代码:

PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器完整实例(栈定义代码)

运行结果:

案例:基于堆栈的高级计算器

当我们得到一个字符串运算式该如何去得出它的运算结果呢?

这时候我们就能使用堆栈的算法很巧妙的解决这个问题。

思路是这样的:(我们利用php函数substr循环去截取这个字符串运算式,依次取出这个字符串的值【我们得从第一个字符开始截取】,我们将开始截取位置设为一个循环增长的变量,初始化为【$index=0】),同时还需要创建两个栈,一个专门存放数字【$numStack】,一个存放运算符【$operStack】,我们还需要一个可以判断是否是运算符号的函数,将每次截取的值放入这个自定义函数中,返回一个可以区别为数字或运算符的标识,通过对这个标识的判断确定值是数字还是运算符,是数字就插入数栈,是运算符的话就插入符号栈。插入数栈的话可直接插入,但是符号栈的话需要特殊处理一下[【如果符号栈为空则直接插入,不为空:我们要将插入的符号与栈内的符号进行运算优先级比较(可以定义一个函数来判定符号优先级,把 * 和 / 假定为1 把 + 和 - 假定为0 假设数字大的优先级高,如此就能得出运算符优先级),当待插入的符号优先级小于等于栈内顶端的运算符优先级,就从数栈弹出两个值 符号栈弹出一个运算符 将它们进行运算】

下面是一个php的实例【参考自韩顺平老师的php算法教程】

运行结果:

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:

PHP+JS实现批量删除数据功能示例 本文实例讲述了PHP+JS实现批量删除数据功能。分享给大家供大家参考,具体如下:表单formid="form2"name="form2"method="post"action="del_product.php"onsubmit="returncheckF(

php操作mysql获取select 结果的几种方法 如果用了MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用MYSQL_ASSOC只得到关联索引(如同mysql_fetch_assoc()那样),用MYSQL_NUM只得到数字索引(如

php serialize()与unserialize() 不完全研究 serialize()和unserialize()在php手册上的解释是:serialize—Generatesastorablerepresentationofavalueserialize—产生一个可存储的值的表示unserialize—CreatesaPHPvaluefromastoredrepr

标签: 栈定义代码

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

上一篇:PHP队列原理及基于队列的写文件案例(php排队系统)

下一篇:PHP+JS实现批量删除数据功能示例(php实现批量删除)

  • 如何查企业是一级企业
  • 城镇土地使用税减免税政策
  • 固定资产转让怎么做账
  • 员工工伤住院伙食补助标准是多少
  • 计提本月短期借款利息是权责发生制吗
  • 小规模纳税人可以开数电专票吗
  • 服务不动产扣除项目怎么填
  • 废旧物资收购发票取消
  • 预包装食品是否备案怎么查询
  • 车船税的收据什么样
  • 小规模企业多交增值税
  • 工商年报最迟什么时候申报
  • 房地产开发企业销售自行开发的房地产项目
  • 销货方违规作废增值税专用发票怎么处理
  • 当月勾选认证的原材料与当月领用的原材料区别
  • 出口收入没有及时申报怎么处罚
  • 房地产企业的收入信息披露范围进一步扩大
  • 支付的劳务派遣服务费现金流量
  • 样品不收钱怎么做会计分录
  • 银行定期存款利率计算
  • 三证合一后有效期多久
  • 企业所得税 税法
  • 年终所得税汇算提示成本费用与实际取得发票有差异
  • 小规模纳税申报表下载
  • 重置申报清册是什么意思
  • 老板带员工出去吃饭
  • 冲费用挂账怎么做账
  • 租入房屋修缮费用谁承担
  • 小型微利企业所得税率
  • daio.dll 病毒
  • 股份支付费用是股权激励成本吗?
  • PHP:pg_close()的用法_PostgreSQL函数
  • bios中英文对照表图新版
  • antvl7
  • 房地产土地使用税核减条件
  • 穆尔官网
  • php关闭报错
  • php 加密
  • 工会经费可以提出来使用吗
  • php判断数组是否为空的函数
  • 新企业所得税税前扣除政策
  • 毕业设计基础
  • 音乐制作人评刀郎新专辑
  • linux调试工具有哪些
  • php判断字符串是否包含字母
  • 合并报表的会计主体
  • 借预收账款贷其他应付款什么意思
  • phpcms 用的是什么模板引擎
  • 税控服务费全额抵扣怎么申报
  • 公司收到待报解预算收入在哪里查具体情况
  • 如何计算生产费用
  • 结转费用后利润怎么算
  • 本月购进金额怎么算
  • 提前报废固定资产需要补提折旧
  • 结转成本涉及的科目
  • 预付卡开不征税发票
  • 会计凭证负数金额怎么算
  • 通用SQL存储过程分页以及asp.net后台调用的方法
  • win7系统连接VPN失败时提示错误代码721的故障分析及解决方法
  • windows无法访问\\192.168.1.104
  • mac双系统怎么调整磁盘空间
  • 解决登陆xp系统问题
  • 延迟windows更新
  • linux ping命令的用法
  • win10怎么添加蓝牙驱动
  • 开关光驱是平移还是旋转
  • win7无法远程桌面win10
  • win10系统开机自动还原
  • win7怎么操作
  • jquery的实现原理
  • python标准库很庞大,它可以帮助处理各种工作,包括
  • shell 递归
  • 批处理文件的拷贝怎么写
  • unity3d Human skin real time rendering plus 真实模拟人皮实时渲染 plus篇
  • shell脚本实战
  • 安卓基于谷歌
  • node.js的概念
  • 2020年保安证取消了吗
  • 在电脑上怎样做word的文档
  • 德州市国土自然资源局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设