请各位大侠来看看:表达式求值的几个问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 02:05:55
我学数据结构有2个多月了,书本上有个用栈求表达式值的算法,我自己些程序的时候遇到了几个大问题始终无法解决:
1、用户输入的表达式用什么东西保存,如果是用字符数组,那我该如何把里面的数提取出来,比如(123+123)*12,我怎么把123,123,12变成数呢?
2、这个算法需要用到几种栈,我的想法是用两个,一个字符栈,一个数组栈,所以我写了两个栈类,但是我看到一些网上的只用了一种栈,还有我用类的思想来解决这种问题是不是有点多此一举了呢?
3、怎么把字符'1'、'2'等变成数字1、2?我发现atoi这个函数的参数需要是一个数组名。

1.逐个的提取
2。需要俩个栈,一个存放运算符,另一个存放数字。类的思想比较好,编程上也是一种锻炼,另外,类比较利于后期的纠错。当然这个问题不用面向过程的方法完全可以做出来,而且不是很复杂。
3。把字符'1'、'2'等变成数字1、2很简单:n='n'-48;(n=0,1,2,3,4。。。。。9)(ASCII码上的关系)