如何在 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>
中綴表示式轉字尾表示式轉換器的應用
此轉換器可用於將複雜的中綴表示式轉換為字尾表示式。這在解決數學問題或使用字尾表示式的程式語言中很有幫助。中綴表示式轉字尾表示式轉換器是一個有用的工具,可用於將複雜的中綴表示式轉換為字尾表示式。
廣告