算术表达式-将中缀表达式转换为后缀表达式

一、算术表达式

是什么?由数字和运算符组成的式子。简单清楚的描述计算过程和内容。

算术表达式分为:前缀表达式、中缀表达式、后缀表达式;中缀表达式符合人类的日常思维习惯。

二、中缀表达式如何在计算机中存储?

         采用树的数据结构,缺点是如果表达式过于复杂,树的高度会很高,极大的增加了时间复杂度和空间复杂度,但是转换成线性结构,效率将会提高很多,所以需要将中缀表达式先转换成前缀或后缀。依靠栈来进行计算。

这里用栈的数据结构实现算术表达式(简单起见,这里定义的是未省略括号的算术表达式,支持+、-、*、/)。

E.W.Dijkstra在20世纪60年代发明了一个简单算法,用两个栈(一个用于保存运算符,一个用于保存操作数)完成了这个任务。表达式由括号、运算符和操作数组成,根据以下4种情况从左到右逐个将这些实体送入栈处理:

1.将操作数压入操作数栈;

2.将运算符压入运算符栈;

3.忽略左括号;

4.在遇到右括号时,弹出一个运算符,弹出所需数量的操作数,并将运算符和操作数的运算结果压入操作数栈。

在处理完最后一个右括号之后,操作数栈上只会有一个值,即表达式的值。

三、将中缀表达式转换为后缀表达式

参考博客链接:https://www.cnblogs.com/james111/p/7027820.html

 

发布了80 篇原创文章 · 获赞 32 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/dopdkfsds/article/details/101755681