每天一道算法题の波兰表达式(前缀表达式)

波兰表达式,又称前缀表达式,是一种运算符在操作数前面的表示法。计算时从右到左扫描,遇到数字压入堆栈,遇到运算符则弹出栈顶两个数进行运算,结果再入栈。例如,在-12的表达式中,运算过程为2-1得到-1。
摘要由CSDN通过智能技术生成

波兰表达式(前缀表达式)

简介:波兰表达式(Polish Notation,RPN),也称为前缀表达式(Prefix Notation),是一种运算符前置的表达式(没有括号),它的运算符位于操作数之前。这与后缀表达式(Postfix Notation)的形式相反,后缀表达式的运算符位于操作数之后。

查看源码

实现思路:

  1. 从右至左扫描表达式,将数字压入堆栈。(注意:虽然是从右往左,当计算顺序仍然是从左往右,所以前缀表达式在计算时是用次顶元素 op 栈顶元素)
  2. 如果遇到运算符,则弹出栈顶的两个数,用该运算符对它们做相应的计算(次顶元素 op 栈顶元素),并将结果入栈;例如:对于表达式 “- 1 2”,从右往左遍历,当遇到加号运算符时,将栈顶元素1与次顶元素2相减,并将结果-1压入堆栈。
  3. 重复步骤2直到表达式最左边。
  4. 将运算结果弹出栈并输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值