编程介的小学生
2019-02-16 18:44中缀带括号的表达式转换为前缀表达式的C语言怎么用堆栈来实现的?数据结构的办法
Problem Description
Reverse Polish notation (RPN) is a method for representing expressions in which the operator symbol is placed after the arguments being operated on.
Polish notation, in which the operator comes before the operands, was invented in the 1920s by the Polish mathematician Jan Lucasiewicz.
In the late 1950s, Australian philosopher and computer scientist Charles L. Hamblin suggested placing the operator after the operands and hence created reverse polish notation.
RPN has the property that brackets are not required to represent the order of evaluation or grouping of the terms.
RPN expressions are simply evaluated from left to right and this greatly simplifies the computation of the expression within computer programs.
As an example, the arithmetic expression (3+4)*5 can be expressed in RPN as 3 4 + 5 *.
Reverse Polish notation, also known as postfix notation, contrasts with the infix notation of standard arithmetic expressions in which the operator symbol appears between the operands. So Polish notation just as prefix notation.
Now, give you a string of standard arithmetic expressions, please tell me the Polish notation and the value of expressions.
Input
There're have multi-case. Every case put in one line, the expressions just contain some positive integers(all less than 100, the number of integers less than 20), bi-operand operators(only have 3 kinds : +,-,*) and some brackets'(',')'.
you can assume the expressions was valid.
Output
Each case output the Polish notation in first line, and the result of expressions was output in second line.
all of the answers are no any spaces and blank line.the answer will be not exceed the 64-signed integer.
Sample Input
1+2-3*(4-5)
1+2*(3-4)-5*6
Sample Output
Case 1:
- + 1 2 * 3 - 4 5 6 Case 2:
- + 1 * 2 - 3 4 * 5 6 -31
- 点赞
- 回答
- 收藏
- 复制链接分享
0条回答
为你推荐
- 中缀表达式转后缀表达式,什么问题?
- c
- c++
- 3个回答
- 像这样的(9 3 1 - 3 * + 10 2 / + )后缀表达式怎么样求值呢?
- php
- 1个回答
- 急急急!设计一个程序实现基于二叉树的算术表达式的操作 求代码 有重谢!
- 二叉树
- 1个回答
- 后缀算式9 2 3 +- 10 2 / -的值为
- x
- 1个回答
- 怎样用c实现链栈的算术表达式运算,不得使用stl模板
- abcde
- 2个回答