求一算法(逆波兰式->表达式)

efootball 2005-06-03 01:14:58
比如有一表达式为:a+c*(b-d/e)
则它的逆波兰式为:acbde/-*+
现在我想输入逆波兰式求出它的表达式并输出
那们同仁可以解决的呀,小弟我不甚感激呀?没有代码也行,只要给出个思路就行了,
小弟我想了一天多了,但是总是找不到好的办法。
...全文
566 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
foochow 2005-06-03
  • 打赏
  • 举报
回复
有人问过了,你搜索下-_-
yangfasheng 2005-06-03
  • 打赏
  • 举报
回复

/*
Start: 开始扫描后缀表达式,
1.当读到的符号是一个操作数,则将其入栈,;
2.当读到的符号是一个运算符@,就从栈顶依次取出两个操作数,x2,x1;
a: 将这两个操作数和运算符保存到一个字符串,tempstr="x1@x2";
b: 若@是 + 或者是 - ,并且在该运算符之后出现 *,/
则在前面的字符串中加入()
即:sprintf(buffer,"(%s)",tempstr);
3. 重复 1,2 ,直到结束;
*/
efootball 2005-06-03
  • 打赏
  • 举报
回复
做沙发的高手,能不能就用栈来实现呀,说说用栈实现的思路
行吗,因为我们老师要我们做一个程序,输入一个表达式求出它的逆波兰式,反之
我已经把前半部分做出来了,但是从逆波兰式到表达式却碰到了很大的问题,不知道怎么做才好
那们高手帮帮忙,行吗?
「已注销」 2005-06-03
  • 打赏
  • 举报
回复
数据结构的书有算法。。
6spring 2005-06-03
  • 打赏
  • 举报
回复
根据逆波兰式建2叉树,中序遍历得表达式

建树:acbde依次压栈,/-*+依次入队列。

然后…… (不用说了吧)

PS:记得父节点运算符比自己优先级高时,加括号显示

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧