北邮期末C++考试题,求解题思路?

eroswzg 2003-12-31 04:16:41
我的问题是,分析表达式,并求值时应该如何下手?求思路。。
如何判断括号,以及运算优先级等。。
谢谢大家

题目:定义一个类,用来分析、存储、计算、打印某个算术表达式,该算术表达式仅仅包含整数常量及+ - * / ()运算符,对该类的公用界面有如下所示:
class Expr{
public:
Expr(char*);
int eval();
void print();
}
其中,构造函数Expr::Expr()的string类型参数即为所要求值的表达式,eval负责求值,print负责打印。
主程序应该如下:
Expr x(""123/4+123*4-3)");
cout <<"x="<<x.eval()<<"\n"
x.print();
要求用链表存储表达式每个字符。


...全文
314 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaolan1999 2004-01-05
  • 打赏
  • 举报
回复
這是后缀表达式问题,在编译原理上有。
lu_zi 2004-01-05
  • 打赏
  • 举报
回复
算符优先文法就可了
whoho 2004-01-02
  • 打赏
  • 举报
回复
一般数据结构的书上都讲吧,经常用栈实现
如果加上分析,看看编译原理的相关内容
比如算符优先分析
zchuer 2004-01-02
  • 打赏
  • 举报
回复
用堆栈实现吧。
我记得在当初我用的严蔚民的《数据结构》教材上的“线性表”那章里有对表达式求值的
比较详细的介绍。现在北邮应该还是用严的教材吧,呵呵,算是比较经典的。

是不是你们还没开始学数据结构阿?
可以找高年级的师兄借来看看啊!
thb28 2004-01-01
  • 打赏
  • 举报
回复
用stack做,很简单的,以前我用c编过!!!!!
glacierrr 2004-01-01
  • 打赏
  • 举报
回复
好像比较麻烦,不看了
eroswzg 2004-01-01
  • 打赏
  • 举报
回复
可惜俺没有那本书。有人帮我拷过来看看吗?
flyingbirddhp 2003-12-31
  • 打赏
  • 举报
回复
大家都只学钱能的吧~~~~~~~~~~~
AgedBOY 2003-12-31
  • 打赏
  • 举报
回复
本科教育不是职业教育……呃这个……那上本科是为了职业吗?

或是为了什么?哦是为了考研是吧,读研是为了读博,读博是为了做教授或者院士,或是做更高的学问……
abitz 2003-12-31
  • 打赏
  • 举报
回复
在大学课程中学习C++这样一个比较烦杂的语言合适吗?
个人觉得我们学校只讲C语言还是比较明智的:简明又足以给后续课程作基础;
毕竟本科教育不是职业教育。
xiaocai365 2003-12-31
  • 打赏
  • 举报
回复
建议 :)

class Expression{
public:
explicit Expression(char*);
int eval() const;
void print() const;
};

怎么样,我怀疑中国有多少大学在学习
The Standard C++
lovezn0424 2003-12-31
  • 打赏
  • 举报
回复
嗬嗬,还是那本比较精典的c++那本c++教父写的。李有一个桌面计算器。
hslinux 2003-12-31
  • 打赏
  • 举报
回复
数据结构(c语言版)严蔚敏,吴伟民编著 清华大学出版社 P52~P54,,,,,,
abitz 2003-12-31
  • 打赏
  • 举报
回复
足已就是解决问题的方案。
上面那句翻译成:
有一个符号优先级表和一个数据堆栈、一个符号堆栈来做解决问题的方案。
eroswzg 2003-12-31
  • 打赏
  • 举报
回复
足己是什么意思?
now123 2003-12-31
  • 打赏
  • 举报
回复
有一个符号优先级表和一个数据堆栈、一个符号堆栈来做足已。
编程以符号栈为主,当符号栈为空时结束。
eroswzg 2003-12-31
  • 打赏
  • 举报
回复
关键是对如何分析表达式,并求值不懂呀。。
qiaojicheng 2003-12-31
  • 打赏
  • 举报
回复
怎样形成后缀表达式呢?
bm1408 2003-12-31
  • 打赏
  • 举报
回复
数据结构的知识,如果你想走点短路的话,可以买一本C++的数据结构的书,上面有现成的!
主要是用到的树和栈!
如果深层次了解的话,就用到了编译原理方面的知识!
上面的兄台说的有道理!
abitz 2003-12-31
  • 打赏
  • 举报
回复
随便找本数据结构书,里面肯定会有对如何用栈来解决这个问题描述。
相关的概念有逆波兰表达式等。
随便找本编译原理书,里面肯定会有对如何用语法制导的语义分析来解决这个问题描述。
相关的概念有算符优先(LL(1)),递规下降,LR分析等。

64,637

社区成员

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

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