需要一个能计算后缀表达式(逆波兰式)的存储过程,有没有人研究过?(200分)(200分)

  • 主题发起人 主题发起人 tunny
  • 开始时间 开始时间
T

tunny

Unregistered / Unconfirmed
GUEST, unregistred user!
需要一个能计算逆波兰式的存储过程,有没有人研究过?
只要能计算,怎么存储都行。
初步设计是每个元素放在一条记录里面,例如一个表达式:
ab*c+
分放在5条记录中,用一个字段表达前后顺序,
1 a
2 b
3 *
4 c
5 +
这只是一种放法。只要能用存储过程计算其值,怎么放都行。
为了简化,先只考虑+-*/四则运算。
 
我象你用数组来摸仪堆栈操作,算法参考一般的编译原理书。一般都又示例。

如果你用Oracle,就跟简单了,他支持数组。
 
利用Asm,用堆栈的方式(push ax, pop ax)岂不更容易?!
 
忘了告诉大家,我的机器是用的SQL7,它的存储过程
里面好象没有提到如何声明一个数组,或者堆栈什么的。
有谁会编一个这样的例子吗?
 
非常感谢大家的帮助,请问有没有详细的例子可以参考的?
 
我提一个看法,(但数据库刚学)可以不用数组。用一个变量 a 存储结果,
刚开始 a 为第一个数字,
因为你知道所有的字段,你可以按照顺序访问字段,访问一次读一个字符,
再用一个变量 b 存贮第二个数字,然后计算,结果存入a,就接着来吧,
不知道可行否?
 
可以用表来模拟。

键表,在表中使用identify字段,来表示数组的序列号,

当你想取Str

select @Str_i=Str_Field from Str_Table where id=@i;

来模拟。


现在有了数组,其他都好办了,算法参考一般的编译原理书
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部