中缀表达式转后缀表达式

S_zxing 2009-04-14 12:31:06
如题,但是中缀表达式里的数据要可以是不止是一位数。
比如说 12+(24-8)*11 这个表达式怎么转
只要说算法思想就可以了,希望大家能帮下忙
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
S_zxing 2009-04-14
  • 打赏
  • 举报
回复
不好意思,我没说清楚
我想用栈来实现 我要的是算法思想 不是答案
liliangbao 2009-04-14
  • 打赏
  • 举报
回复
结果:
12 24 8 - 11 * +
可以将其转成二叉树来看:
+
12 *
11 -
24 8
将数字当叶子节点,运算符当非叶子节点~
bitsjx 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bitsjx 的回复:]
如果是表达式里面的数据不只一位数的话可以将表达式存为一个数组,然后对这个数组进行操作,这样的话即使里面有小数也可以的。
[/Quote]

我的意思是这个表达式可以分成两部分:数字和运算符。

如果将它们当成一个字符串存进数组的话,那么我们就可以每次从数组里面取字符,然后看看这个字符是属于“数字”还是属于“运算符”,如果是数字的话可以直接将它存进栈里面,如果是运算符的话则要进行一番比较之后然后才能进栈,这样的话,栈里面的东西其实应该就是那个后缀的表达式了!

不知道说得清楚了没有,还望指教!
S_zxing 2009-04-14
  • 打赏
  • 举报
回复
你那个博客里面的算法思想不适合我这个问题
太笼统了 你的操作数和(都可以压入栈里面 这可能吗 他们是不同的数据类型啊
ltc_mouse 2009-04-14
  • 打赏
  • 举报
回复
认真看数据结构教材。
hityct1 2009-04-14
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_53c4df8f0100bk7j.html
bitsjx 2009-04-14
  • 打赏
  • 举报
回复
如果是表达式里面的数据不只一位数的话可以将表达式存为一个数组,然后对这个数组进行操作,这样的话即使里面有小数也可以的。
S_zxing 2009-04-14
  • 打赏
  • 举报
回复
唉 hairetz能进来下吗
hityct1 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 S_zxing 的帖子:]
如题,但是中缀表达式里的数据要可以是不止是一位数。
[/Quote]
加空格,如:
12 24 8 - 11 * +

看看这个:
http://blog.sina.com.cn/s/blog_53c4df8f0100bk7j.html

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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