一个含多位数的中缀表达式如何转换成后缀表达式(逆波兰表达式)?
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/07 03:22:28
一个含多位数的中缀表达式如何转换成后缀表达式(逆波兰表达式)?
我在写程序时遇到了一些问题
例如10+11转化后是1011+
运算时该怎样确认是1+011;还是10+11;还是101+1?
麻烦大家帮下忙,顺便再问一下关于小数点、sin()等函数、和需要两个变量,中间用逗号隔开的函数,例如f(a,b)的处理.以及对于“+”、“-”是运算加、运算减,还是正号、符号的识别问题.
我在写程序时遇到了一些问题
例如10+11转化后是1011+
运算时该怎样确认是1+011;还是10+11;还是101+1?
麻烦大家帮下忙,顺便再问一下关于小数点、sin()等函数、和需要两个变量,中间用逗号隔开的函数,例如f(a,b)的处理.以及对于“+”、“-”是运算加、运算减,还是正号、符号的识别问题.
![一个含多位数的中缀表达式如何转换成后缀表达式(逆波兰表达式)?](/uploads/image/z/6611336-8-6.jpg?t=%E4%B8%80%E4%B8%AA%E5%90%AB%E5%A4%9A%E4%BD%8D%E6%95%B0%E7%9A%84%E4%B8%AD%E7%BC%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%A6%82%E4%BD%95%E8%BD%AC%E6%8D%A2%E6%88%90%E5%90%8E%E7%BC%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%88%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%89%3F)
后缀表达书似乎不支持多位数的运算
1011+的话应该是不能算的,因为参数多了
就拿这个当例子解释一下运算过程好了
输入1 入栈1 栈堆1
.0 .0 .1 0
.1 .1 .1 0 1
.1 .1 .1 0 1 1
.+ . .1 0 2 //发现输入了一个2位运算符号,出栈最后两位数相加,把相加结果入栈
然后没有输入就error了
后面那个问题不是很明白,+,-,*,/也是两位运算符啊
“+”,“-”在后缀运算符里面是运算符号
1011+的话应该是不能算的,因为参数多了
就拿这个当例子解释一下运算过程好了
输入1 入栈1 栈堆1
.0 .0 .1 0
.1 .1 .1 0 1
.1 .1 .1 0 1 1
.+ . .1 0 2 //发现输入了一个2位运算符号,出栈最后两位数相加,把相加结果入栈
然后没有输入就error了
后面那个问题不是很明白,+,-,*,/也是两位运算符啊
“+”,“-”在后缀运算符里面是运算符号