社区
数据结构与算法
帖子详情
请教一个把后缀式转换为中缀式的算法。。。
nick_lhy
2011-01-07 12:48:46
请教一个把后缀式转换为中缀式的算法,要求用栈实现,我在网上找了半天,都是中缀转后缀的代码,请求大神们给个算法吧
...全文
226
8
打赏
收藏
请教一个把后缀式转换为中缀式的算法。。。
请教一个把后缀式转换为中缀式的算法,要求用栈实现,我在网上找了半天,都是中缀转后缀的代码,请求大神们给个算法吧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nick_lhy
2011-01-09
打赏
举报
回复
[Quote=引用 7 楼 litaoye 的回复:]
直接按照后缀表达式的计算方法,不算值了,而是把符号加到中间,括号加到两边,然后入栈就行了。
[/Quote]这样我能够做到,但是还想实现省略不需要的括号的功能。。。比如 1 2 * 3 +,应该输出
1*2+3,关于省略不需要的括号我实在纠结啊。。
绿色夹克衫
2011-01-08
打赏
举报
回复
直接按照后缀表达式的计算方法,不算值了,而是把符号加到中间,括号加到两边,然后入栈就行了。
nick_lhy
2011-01-07
打赏
举报
回复
[Quote=引用 5 楼 zhaolinger2 的回复:]
引用 4 楼 nick_lhy 的回复:
我就是这样写的,结果些出来以后括号实在看着恶心,关于各种运算符号优先级控制括号的省略实在感觉麻烦。。。
可以这样:
放入栈中的时候放ApB,然后在后面再放一个p。
等到下一个运算符q被读出来后,从栈中连续取元素,直到读满两个非运算符元素为止。
有以下几种情况:
(以E表示非运算符,以p表示运算符)
1、EE 表示两个元素都是单纯的……
[/Quote]谢谢了,我去试一试!
zhaolinger2
2011-01-07
打赏
举报
回复
[Quote=引用 4 楼 nick_lhy 的回复:]
我就是这样写的,结果些出来以后括号实在看着恶心,关于各种运算符号优先级控制括号的省略实在感觉麻烦。。。[/Quote]
可以这样:
放入栈中的时候放ApB,然后在后面再放一个p。
等到下一个运算符q被读出来后,从栈中连续取元素,直到读满两个非运算符元素为止。
有以下几种情况:
(以E表示非运算符,以p表示运算符)
1、EE 表示两个元素都是单纯的运算元素,直接EqE和q(两个)依次重新放回;
2、pEE或EpE或pEpE p后面紧跟着的那个元素是复合元素,即由单纯的运算元素和运算符重新组合过的元素。此时,拿p和q做运算符优先级判定,举个例子:
pEE:
如果p<q,则将(E)qE和q分别压入栈;
如果p>=q,则将EqE和q分别压入栈。
nick_lhy
2011-01-07
打赏
举报
回复
[Quote=引用 2 楼 zhaolinger2 的回复:]
伪代码:
中缀串Dst
后缀串Src(已赋初值)
空栈Stack
从头到尾遍历Src,直到串尾为止
{
取出一个字符,将其作为一个元素p
判断p性质
如果p为非运算符
{
压入栈
}
如果p为运算符
{
从栈顶连续得到两个元素A,B
将(ApB)组成新的元素C(包……
[/Quote]我就是这样写的,结果些出来以后括号实在看着恶心,关于各种运算符号优先级控制括号的省略实在感觉麻烦。。。
nick_lhy
2011-01-07
打赏
举报
回复
[Quote=引用 1 楼 lx3275852 的回复:]
关键在于加括号!~
[/Quote]对,就是各种运算符号的优先级麻烦
zhaolinger2
2011-01-07
打赏
举报
回复
伪代码:
中缀串Dst
后缀串Src(已赋初值)
空栈Stack
从头到尾遍历Src,直到串尾为止
{
取出一个字符,将其作为一个元素p
判断p性质
如果p为非运算符
{
压入栈
}
如果p为运算符
{
从栈顶连续得到两个元素A,B
将(ApB)组成新的元素C(包括左右的两个括号)
将C重新压入栈中
}
}
最后栈中剩下的唯一一个元素就是所求
这个方法能保证取到合适的中缀串,不足就是可能添加有比较多的括号。
lx3275852
2011-01-07
打赏
举报
回复
关键在于加括号!~
【C++讨论站】可以完成
中缀
表达
式
转
后缀
表达
式
的简单计算器
1.问题描述 对于给定的
一个
表达
式
,表达
式
中可以包括常数、算术运行符(包括:“+”、 “-”、“*”、“/”、“%”(求余运算)、“^”(乘幂运算)、“!”(阶乘运算))和括 号,编写
一个
简单计算器,实现表达
式
的计算。 基本要求:从键盘输入
一个
正确的表达
式
,将表达
式
转换
为对应的
后缀
表达
式
,并计算
后缀
表达
式
的值。对于表达
式
中的简单错误(如,除数不能为零、负数无法求阶乘等),能够给出提 示,并给出错误信息;表达
式
中可以包括单个字母表示的变量。 提高要求:完成基本要求的基础上,能够支持一部分不规范的表达
式
计算器
中缀
表达
式
算法
代码C++和java实现并做
一个
简单的android计算器
这次安卓开发课程要我们做
一个
简单的计算器但是要能实现基本的计算功能要有比较美观的界面,水平有限只做了
一个
简单的只能实现带括号的四则运算 界面布局 代码设计 主界面设计(activity_main.xml)代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas...
表达
式
转换
大学霸英子又来了,这次她想计算
一个
很长的表达
式
的值:3+5/7-67-(324-72).... 为了偷懒,她想利用siri,于是有了下面的一段对话: “siri,请告诉我3+5/7-67-(324-72)....的结果”? “这对我太难了,请先转成
后缀
表达
式
”! ...... 于是,英子来
请教
你,怎么把
中缀
表达
式
转化成
后缀
表达
式
输入格
式
: 只有一行数据,
中缀
表达
式
的字符串,含有正整数,操作符号:+,-,*,/,(,)。 输出格
式
:
后缀
表达
式
,每个操作数和操作符后面请输入
一个
“,”作为分割.
第五周项目5-
后缀
表达
式
/* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved。 * 文件名称 :1.cpp * 作 者 :孟令群 * 完成日期 :2016年 9月29日 * 版 本 号 :v1.0 * * 问题描述 :利用sqstack.h中栈的基本运算,实现将
一个
中缀
表达
式
转换
为对应的
后缀
表达
式
的
算法
。 *
mfc计算器运用逆波兰包含四则运算,根号,平方,三角函数,进制
转换
原创文章,未经许可禁止转载 mfc计算器运用逆波兰包含四则运算,根号,平方,三角函数,进制
转换
计算器是程序猿经典考题,我们学校语言设计课程暑假的任务就是写
一个
越复杂越好的计算器,一开始在学校里的时候比较忙,断断续续搜了一点资料还是一头雾水,根本不理解怎么利用逆波兰表达
式
。最近三天
请教
各路大佬,查阅了不少博客总算是写完了,主要想总结和反思几点。 1、逆波兰究竟怎么写,怎么与mfc关联起来 逆波兰表...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章