【算法】中缀表达式转成后缀表达式(逆波兰表达式)再计算得出结果

您所在的位置:网站首页 波兰表达式和逆波兰表达式 【算法】中缀表达式转成后缀表达式(逆波兰表达式)再计算得出结果

【算法】中缀表达式转成后缀表达式(逆波兰表达式)再计算得出结果

2024-07-09 14:38| 来源: 网络整理| 查看: 265

1. 概述

逆波兰表达式(Reverse Polish Notation, RPN)是波兰逻辑学家J·Lukasiewicz于1929男首先提出的一种表达式的表示方法,也叫做后缀表达式。

一般的表达式又称中缀表达式,这种表达式的二元运算法放在两个操作数中间,而逆波兰表达式把运算符放在两个操作数的后面。例如 a + b 的逆波兰表达式为 ab+ 。

它的优势在于只用两种简单的操作:入栈和出战就可以搞定任何普通表达式的运算。

2. 中缀表达式转换为逆波兰表达式

将中缀表达式转换为逆波兰表达式,步骤如下:

从左到右扫描算术表达式;如果遇到的是操作数,则提取出操作数,将其直接放入逆波兰表达式中;如果遇到的是操作符,则需要将栈中优先级比当前操作符优先级高的操作依次弹出并加入到逆波兰表达式中;其他字符直接跳过;

JAVA

/** * 拆分中缀表达式,即将整数和运算符都提取出来,去掉空格等 * * @param expression 原始表达式 * @return 拆分后的中缀表达式 */ private List splitInfixExpression(String expression) { List res = new ArrayList(); for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3