前辍表达式,中辍表达式,后辍表达式详解
来源:互联网 发布:淘宝销售额排行榜 编辑:程序博客网 时间:2024/05/21 05:20
/*对于科学计算器的算法运用,有简单的算法也有难的算法,比如我博客中的基本功能的算法代码,思维简单,但是代码编写起来却是麻烦有难度。所以牛逼的大神么就搞出了几种牛逼的表达式,通过运用数据结构-栈-的优势,充分的利用了他的递归性,达到了让人想象不到的高效率及便利性。所以在这里给大家说说清楚,以免大家遇到问题时可以非常快的解决。首先介绍一个概念,叫做中辍表达式例子:1+2-3*(4-5)1+2*(3-4)-5*6这些生活中,用于数学运算的就是中辍表达式他可以用二叉树的形式表现出来。下图是第一个式子的二叉树:*/
/*好,介绍完了简单的中辍表达式,开始介绍前辍表达式:所谓的前辍表达式是指将运算符放在操作数的前面。中辍表达式:1+2-3*(4-5) ------>>>>>>>>前辍表达式:- + 1 2 * 3 - 4 5用前辍表达式进行计算的方法,从左开始往右边读取:原理:如果一个操作符后面跟着两个操作数时,则计算,然后将结果作为操作数替换(这个操作符和两个操作数),重复此步骤,直至所有操作符处理完毕。方法:我们可以用一个栈Sys来实现计算,扫描从右往左进行,如果扫描到操作数,则压进Sys,如果扫描到操作符,则从Sys弹出两个操作数进行相应的操作,并将结果压进Sys(Sys的个数出2个进1个),当扫描结束后,S2的栈顶就是表达式结果。同理,后辍表达式:中辍表达式:1+2-3*(4-5) ------>>>>>>>>后辍表达式: 1 2 3 4 5 - * - +我们可以用一个栈Sys来实现计算,扫描从左往右进行,如果扫描到操作数,则压进Sys,如果扫描到操作符,则从Sys弹出两个操作数进行相应的操作,并将结果压进Sys(Sys的个数出2个进1个),当扫描结束后,Sys的栈顶就是表达式结果。{中缀转前缀:对中缀字符串String从右向左遍历。(先前说了,中转前有两个栈,一是字符栈一是数字栈) 1. String[i]为数字,直接输入数字栈。 2. String[i]为运算符,与数字栈顶元素进行比较。大于等于栈顶符号优先级,入字符栈;否则,弹出栈顶符号并将此时的符号插入符号栈。 3. String[i]为括号。如果为右括号,直接插入符号栈;否则,弹出逐个弹出符号栈中的元素并插入字符栈,直到右括号为止。 重复以上步骤至字符串的尾部,接着弹出数字栈中数字,然后再弹出符号栈的符号。 即为前缀表达式。}后缀表达式和前缀表达式看起来就像一对逆过程,实际上并不是这样子,因为字符读取的时候都是从左往右的,所以,前缀表达式往往需要用两个栈来计算(一般为一个数字栈,一个字符栈),有时,其中一个栈用来预处理:将字符串倒序压进栈中。另一个直接进行运算处理。{后辍的表达式求法与前辍基本等同。可以自己推演一下(只需要一个栈就可以完成)}在数据结构中还可以用一种东西来很好的解释他,就是二叉树遍历方法:前序遍历,后序遍历,中序遍历。分别对应前辍表达式,中辍表达式,后辍表达式,前序遍历=T是要遍历树的根指针,中序遍历要求在访问根后,遍历完左子树后,再遍历右子树。中序遍历=T是要遍历树的根指针,中序遍历要求在遍历完左子树后,访问根,再遍历右子树。后序遍历=T是要遍历树的根指针,后序遍历要求在遍历完左右子树后,再访问根。需要判断根结点的左右子树是否均遍历过。*/
0 0
- 前辍表达式,中辍表达式,后辍表达式详解
- 计算表达式(前辍表达式变为后辍表达式之后,利用栈来做)
- 139 data structure 前(中/后)缀表达式 表达式树
- 前序、中序、后序表达式
- 前/中/后表达式的转换
- 前(中后)序表达式讲解
- “中序表达式”转换为“前序表达式”、“后序表达式”
- 中序表达式转成前序表达式和后序表达式及其计算方法
- “中序表达式”转换为“前序表达式”、“后序表达式”
- 前、中、后缀表达式和前、中、后序遍历
- 表达式
- 表达式
- 表达式
- 表达式
- 表达式
- 表达式
- 表达式
- 表达式
- 数字相加问题。
- 简单的WebView自适应并嵌套在ScrollView里
- 字体下载
- JavaWeb 学习(Java Web 典型模块与项目实战大全)
- [Rx86OS-XIV] 提高分辨率
- 前辍表达式,中辍表达式,后辍表达式详解
- ACM-二分-POJ-2785-4 Values whose Sum is 0
- TDA7419调试记录(2)——2015/04/17
- PID教程
- [leetcode]Maximum Product Subarray
- Hadoop常见错误解决
- vi常用命令
- 利用 js 给 WebView add 添加 padding
- 黑马程序员 for循环的条件的解释