如何在 JavaScript 中创建中缀表达式转后缀表达式转换器?


中缀表达式转后缀表达式转换器是一种将中缀表达式转换为后缀表达式的工具。在本教程中,我们将使用 JavaScript 构建中缀表达式转后缀表达式转换器。

什么是中缀表达式?

中缀表达式是一种运算符位于操作数之间的表达式。例如,表达式“3 + 4”就是一个中缀表达式。

什么是后缀表达式?

后缀表达式是一种运算符位于操作数之后的表达式。例如,表达式“3 4 +”就是一个后缀表达式。

中缀表达式转后缀表达式转换器是如何工作的?

转换器首先使用修道院算法将中缀表达式转换为逆波兰表示法 (RPN)。在RPN中,运算符位于操作数之后。逆波兰表示法就是后缀表达式。

让我们考虑中缀表达式“3 + 4”。

该表达式被转换为 RPN。这可以使用修道院算法完成。

步骤如下:

  • 3 被推入输出队列。

  • + 是一个运算符,因此它被添加到运算符栈。

  • 4 被推入输出队列。

  • + 运算符从运算符栈弹出并添加到输出队列。

因此,“3 + 4”的后缀表达式为“3 4 +”。

示例

创建中缀表达式转后缀表达式转换器

下面给出中缀表达式转后缀表达式转换器的完整可运行 HTML 代码。

<!DOCTYPE html> <html> <head> <title>Infix to Postfix Converter</title> <script> function convertToPostfix(infix) { var output = ""; var stack = []; for (var i = 0; i < infix.length; i++) { var ch = infix.charAt(i); if (ch == '+' || ch == '-' || ch == '*' || ch == '/') { while (stack.length != 0 && stack[stack.length - 1] != '(' && getPrecedence(ch) <= getPrecedence(stack[stack.length - 1])) { output += stack.pop(); output += ' '; } stack.push(ch); } else if (ch == '(') { stack.push(ch); } else if (ch == ')') { while (stack.length != 0 && stack[stack.length - 1] != '(') { output += stackHTML.pop(); output += ' '; } stack.pop(); } else { output += ch; } } while (stack.length != 0) { output += stack.pop(); output += ' '; } return output; } function getPrecedence(ch) { if (ch == '+' || ch == '-') { return 1; } else if (ch == '*' || ch == '/') { return 2; } else { return 0; } } </script> </head> <body> <h1>Infix to Postfix Converter</h1> <p>This converter converts an infix expression to a postfix expression.</p> <form> Infix Expression: <input type="text" id="infix"> <input type="button" value="Convert" onclick="var result = convertToPostfix(document.getElementById('infix').value); document.getElementById('postfix').value = result;"> <br><br> Postfix Expression: <input type="text" id="postfix" readonly> </form> </body> </html>

中缀表达式转后缀表达式转换器的应用

此转换器可用于将复杂的中缀表达式转换为后缀表达式。这在解决数学问题或使用后缀表达式的编程语言中很有帮助。中缀表达式转后缀表达式转换器是一个有用的工具,可用于将复杂的中缀表达式转换为后缀表达式。

更新于:2022年8月3日

1K+ 次浏览

启动您的职业生涯

完成课程后获得认证

开始
广告