首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
写出表达式((A+B)*C-(D-E)*(F+G))的前缀表
[填空题]
写出表达式((A+B)*C-(D-E)*(F+G))的前缀表达式
1
。
添加笔记
邀请回答
收藏(210)
分享
纠错
8个回答
添加回答
1
推荐
牛客-007
答案:-*+ABC*-DE+FG
解析:
(1) 首先构造一个运算符栈(也可放置括号),运算符(以括号分界点)在栈内遵循越往栈顶优先级不降低的原则进行排列。
(2)从右至左扫描中缀表达式,从右边第一个字符开始判断:
如果当前字符是数字,则分析到数字串的结尾并将数字串直接输出。
如果是运算符,则比较优先级。如果当前运算符的优先级大于等于栈顶运算符的优先级(当栈顶是括号时,直接入栈),则将运算符直接入栈;否则将栈顶运算符出栈并输出,直到当前运算符的优先级大于等于栈顶运算符的优先级(当栈顶是括号时,直接入栈),再将当前运算符入栈。
如果是括号,则根据括号的方向进行处理。如果是右括号,则直接入栈;否则,遇右括号前将所有的运算符全部出栈并输出,遇右括号后将左右的两括号一起删除。
(3)重复上述操作(2)直至扫描结束,将栈内剩余运算符全部出栈并输出,再逆缀输出字符串。中缀表达式也就转换为前缀表达式了。
编辑于 2015-02-02 10:37:24
回复(1)
34
新手_新手
发表于 2015-09-07 10:59:40
回复(2)
15
Eleven_Lover_Zeng
首先构造一颗树,该树的结构
中序遍历:A+B*C-D-E*F+G
后续遍历:AB+C*DE-FG+*-
前序遍历:-* +ABC*-DE+FG
发表于 2015-08-24 18:17:37
回复(0)
2
peacock
添加括号((((A+B)*C)-((D-E)*(F+G))))
将符号放到该符号的括号前(-(*(+(AB)C)*(-(DE)+(FG))))
去掉括号得:-*+ABC*-DE+FG
发表于 2017-07-27 10:40:50
回复(1)
1
dirty-life
按照运算的优先顺序构建二叉树,然后进行先序遍历
发表于 2015-08-31 16:39:26
回复(0)
0
舒意意123
长见识了
发表于 2017-03-16 14:47:52
回复(0)
0
新手PS
原来是树的前序遍历....
发表于 2016-03-15 22:19:52
回复(0)
0
牛客673977号
我写了很多括号和空格。。。
发表于 2016-02-28 12:28:00
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
编译和体系结构
运维工程师
网易
网易游戏
2015
来自:
2015网易互娱校园招...
上传者:
小牧魔法袋
难度:
8条回答
210收藏
12466浏览
热门推荐
相关试题
下面描述中,符合结构化程序设计风格...
北京搜狐新媒体信息技术有限公司
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
以下指令集架构属于复杂指令集架构的是?
阿里巴巴
编译和体系结构
评论
(15)
来自
阿里巴巴2015实习生笔试题
tcp三次握手创建连接,双方交互的...
网易
2015
网络基础
网易游戏
游戏研发工程师
计算机网络
评论
(11)
来自
2015网易互娱校园招聘...
PING命令使用ICMP的哪一种c...
网易
2015
网络基础
运维工程师
网易游戏
评论
(14)
来自
2015网易互娱校园招聘...
JavaScript定义var a...
网易
2015
Javascript
运维工程师
网易游戏
评论
(54)
来自
2015网易互娱校园招聘...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
解析:
(1) 首先构造一个运算符栈(也可放置括号),运算符(以括号分界点)在栈内遵循越往栈顶优先级不降低的原则进行排列。
(2)从右至左扫描中缀表达式,从右边第一个字符开始判断:
如果当前字符是数字,则分析到数字串的结尾并将数字串直接输出。
如果是运算符,则比较优先级。如果当前运算符的优先级大于等于栈顶运算符的优先级(当栈顶是括号时,直接入栈),则将运算符直接入栈;否则将栈顶运算符出栈并输出,直到当前运算符的优先级大于等于栈顶运算符的优先级(当栈顶是括号时,直接入栈),再将当前运算符入栈。
如果是括号,则根据括号的方向进行处理。如果是右括号,则直接入栈;否则,遇右括号前将所有的运算符全部出栈并输出,遇右括号后将左右的两括号一起删除。
(3)重复上述操作(2)直至扫描结束,将栈内剩余运算符全部出栈并输出,再逆缀输出字符串。中缀表达式也就转换为前缀表达式了。