设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
计算表达式
送交者: 远景城 2006年12月08日21:25:06 于 [灵机一动] 发送悄悄话

设有一表达式存在一个数组Q中。例如:

1*(2+3*(5+7)+9);

数组的每个元素可以是操作数,可以是运算符 +,-,*,/
可以是括号 ),(
也可以是结束符 ;
数组的长度正好容纳表达式。如果元素存运算符,还附有优先数信息:
+,-优先数的初值是1。*,/的优先数的初值是2。;的优先数的初值是0。

运算器能读出每一元素的所有信息,能修改优先数,可以对两个操作数
进行运算(+,-,*,/),比较大小,可以把任何元素置成空格,可以把结果
写到任何元素。

还有2个整数变量p 和 i 。i是数组地址指针,初始值为0。p是工作单元,初始
值为2。运算器能对这2个变量做加减常数操作。

所有的存储资源是Q,i, p,和运算器的两个操作数暂存器。

请写一个算法,计算表达式(主要思想即可)

0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2005: 围棋死活问题3
2005: 围棋死活问题4