我是靠谱客的博主 兴奋大叔,最近开发中收集的这篇文章主要介绍后缀表达式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是后缀表达式

  • 逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后

将中序表达式转换为逆波兰表达式(后缀表达式)

规则

  1. 如果E是一个变量或常量,则E的后缀式是E本身。
  • 如:a,这是中缀表达式,写成后缀表达式就是:a
  1. 如果E是E1 op E2形式的表达式,这里op是如何二元操作符,则E的后缀式为E1 E2 op。
  • 如:a + b,这是中缀表达式,写成后缀表达式就是:ab+;
  • 如:a - b,这是中缀表达式,写成后缀表达式就是:ab-;
  • 如:a * b,这是中缀表达式,写成后缀表达式就是:ab*;
  • 如:a / b,这是中缀表达式,写成后缀表达式就是:ab/;
  • ………………。
  1. 如果E是(E1)形式的表达式,则E1的后缀式就是E的后缀式。
  • 如:(a),这是中缀表达式,写成后缀表达式就是:a

举例

(a+b)*c-(a+b)/e
后缀表达式:
→((a+b)*c)((a+b)/e)+
→((a+b)c*)((a+b)e/)+
→(ad+c*)(ab+e/)+
→ab+c*ab+e/+
最终结果:ab+c*ab+e/+

作用

  • 实现逆波兰式的算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式?原因就在于这个简单是相对人类的思维结构来说的,对计算机而言中序表达式是非常复杂的结构。相对的,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。

最后

以上就是兴奋大叔为你收集整理的后缀表达式的全部内容,希望文章能够帮你解决后缀表达式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部