C++ 中缀会话的后缀
我无法从后缀到中缀求解这个表达式。请帮我详细了解一下C++ 中缀会话的后缀,c++,c,equation,infix-notation,postfix-notation,C++,C,Equation,Infix Notation,Postfix Notation,我无法从后缀到中缀求解这个表达式。请帮我详细了解一下 5 x y - / x y + 3 ^ 7 / + 这不是代码,而是方法,您应该将后缀扩展为中缀: 5xy-/xy+3^7/+ 5(x-y)/xy+3^7/+ (5/(x-y))xy+3^7/+ (5/(x-y))(x+y)3^7/+ (5/(x-y))((x+y)^3)7/+ (5/(x-y))((x+y)^3)/7)+ (5/(x-y))+((x+y)^3)/7这是相当直截了当的: 您阅读一个参数并决定它是值还是变量。如果是,则将参数推
5 x y - / x y + 3 ^ 7 / +
这不是代码,而是方法,您应该将后缀扩展为中缀: 5xy-/xy+3^7/+ 5(x-y)/xy+3^7/+ (5/(x-y))xy+3^7/+ (5/(x-y))(x+y)3^7/+ (5/(x-y))((x+y)^3)7/+ (5/(x-y))((x+y)^3)/7)+
(5/(x-y))+((x+y)^3)/7这是相当直截了当的:
在C++中处理这个问题,我用派生类创建了一个基类(<代码>表达式<代码>),它表示不同类型的节点(<代码>值,<代码>变量< /代码>,和<代码>二进制操作< /C> >,并维护<代码> STD::堆栈。将其编码主要是一个打字练习。中缀后缀:
5 x y - / x y + 3 ^ 7 / +
台阶
5 x y-/A) 5xy-/=5(x-y)/=(5/(x-y))
xy+
B) xy+=(x+y)
(x+y)3^
B.1)(x+y)3^=(x+y)^3)
现在,(5/(x-y))((x+y)^3)7/+
=(5/(x-y))((x+y)^3)/7)+ =(5/(x-y))+((x+y)^3)/7) 后缀和前缀是不使用括号的表达式。运算符的优先级是根据表达式中出现的顺序决定的,因此计算表达式时无需搜索下一个操作来执行-FAST 在中缀表达式中,运算符的优先级被括号覆盖。因此中缀表达式中有括号-需要搜索要执行的操作,例如A+B%D-因此慢
这就是转换在计算机科学中有用的原因 @Grijesh Chauhan的答案无疑是正确的,而且切中要害,但我想知道“不接受”我的答案的原因。这是错误的还是描述得不那么清楚?因此,我可以对其进行改进。与其他答案相比,您的答案提供了更通用的方法,因此可以用于处理后缀符号中的任何表达式。上面引用的答案只是对给定表达式的转换,而此答案是进行转换的实际方式和逻辑。比我的好。应该被接受。