| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 972 人关注过本帖
标题:请大虾们帮帮看看这道题!!!!!!!
只看楼主 加入收藏
skyhu00
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-1-6
收藏
 问题点数:0 回复次数:2 
请大虾们帮帮看看这道题!!!!!!!
题目:表达式求值.要求输入任意一个表达式(包含"+ - * / ( )"),求出该表达式的值. 注:最好是用C语言编写的,那样小弟才能看的懂(不过C++也可以). 如果可能的话,还可以帮小弟把程序的意思标清楚. 小弟万分感谢您!!!!!!
2005-01-07 16:20
白峰
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-9-13
收藏
得分:0 
程序太长了,我把思路给你写下来吧!
算法思路:使用两个栈s1和s2,其中,s1为运算符栈,用以寄存运算符,而s2为操作数栈,用以寄存操作数或运算结果。其算法思路如下,
1.首先设置两栈为空,将"#"做为表达式起始附压入运算符栈s1做为栈底元素。
2.依次读入表达式的每个字符,若是操作数则进入操作数栈s2;若是运算符,则与s1的栈顶运算符比较优先级,若栈顶运算符的优先级低,则进入栈s1,若栈顶运算符优先级高,则弹出s1的栈顶运算符,并从栈s2中弹出两个操作数,做相应运算后,将结果压入操作数栈s2,然后再次与s1的栈顶运算符比较优先级,直至栈顶运算符优先级低为止。
3.当s1的栈顶运算符为“#”时,表达式求值结束,操作数栈s2中的数即为表达式的值!



作为一个程序编写者,我不能把答案给你,这样子我会害了你!^_^#
其实是程序太长了,我没法子写完!不好意思了!

白天永远都是我们寂静的时刻,只有到晚上,我们才会睁这惺忪的双眼来窥视着网络!让所有收费的东西都害怕我们吧!免费万岁,自由万岁!
2005-02-18 00:02
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
你上搜索网搜索波兰算法就有了。
2005-02-19 10:03
快速回复:请大虾们帮帮看看这道题!!!!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023290 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved