中缀表达式怎么写

1.中缀表达式如何转换为前后缀表达式

1、中缀表达式变后缀的算法:遇到操作数,直接输出。

2、栈为空是,遇到运算符,直接入栈。

3、遇到左括号时,将其入栈。

4、遇到右括号时,执行出栈操作,并且开始将出栈的元素输出。直到弹出栈的元素是左括号为止。

5、遇到其他运算符的时候,弹出所有优先级大于等于该运算符栈顶元素,然后将该运算符入栈。最终将栈中的元素依次出栈。

2.中缀表达式怎么转换为后缀表达式

1. 初始化一空栈,用来对符号进出栈使用。

2. 第一个字符是数字9,输出9,后面是符号“+”,进栈。

3. 第三个字符是“(”,依然是符号,因其只是左括号,还未配对,故进栈。

4. 第四个字符是数字3,输出,总表达式为9 3,接着是“-”进栈。

5. 接下来是数字1,输出,总表达式为9 3 1,后面是符号“)”,此时,我们需要去匹配此前的“(”,所以栈顶依次出栈,并输出,直到“(”出栈为止。此时左括号上方只有“-”,因此输出“-”,总的输出表达式为9 3 1 -

6. 接着是数字3,输出,总的表达式为9 3 1 - 3 。紧接着是符号“*”,因为此时的栈顶符号为“+”号,优先级低于“*”,因此不输出,进栈。

7. 之后是符号“+”,此时当前栈顶元素比这个“+”的优先级高,因此栈中元素出栈并输出(没有比“+”号更低的优先级,所以全部出栈),总输出表达式为 9 3 1 - 3 * +.然后将当前这个符号“+”进栈。也就是说,前6张图的栈底的“+”是指中缀表达式中开头的9后面那个“+”,而下图中的栈底(也是栈顶)的“+”是指“9+(3-1)*3+”中的最后一个“+”。

8. 紧接着数字10,输出,总表达式变为9 3 1-3 * + 10。

9. 最后一个数字2,输出,总的表达式为 9 3 1-3*+ 10 2

10. 因已经到最后,所以将栈中符号全部出栈并输出。最终输出的后缀表达式结果为 9 3 1-3*+ 10 2/+

从刚才的推导中你会发现,要想让计算机具有处理我们通常的标准(中缀)表达式的能力,最重要的就是两步:

将中缀表达式转化为后缀表达式(栈用来进出运算的符号)。

将后缀表达式进行运算得出结果(栈用来进出运算的数字)。

整个过程,都充分利用了找的后进先出特性来处理,理解好它其实也就理解好了栈这个数据结构。

3.C语言:数据结构(写出下边这个中缀表达式的后缀表达式)

网上说的都比较麻烦,其实很简单:

首先你要知道一点就是中缀转为后缀时操作数的顺序是不会变的。另外“(”也不会出现在后缀表达式中。

然后,你可以这样看,在这个表达式中,按照运算法则,应该先算(-B) (这里你的表达式里应该是少了个括号),所以就是“B-”在一起,然后再把(-B)的结果乘以A,就变成了 AB-*(因为是A*(-B),所以A在B前,而“*”在“-”的后面),然后将上面的结果+C,同样的道理分析,自然就是:AB-*C+了。(注:因为C是在AB的后面,所以C在*的后面)

如果中缀表达式是:C+A*(-B),则后缀表达式即为:CAB-*+。

希望你能理解!!!

同样的例子,请参见:?oldq=1

4.如何将后缀表达式转换为中缀表达式

中缀表达式转换成后缀表达式并求值

算法:

中缀表达式转后缀表达式的方法:

1.遇到操作数:直接输出(添加到后缀表达式中)

2.栈为空时,遇到运算符,直接入栈

3.遇到左括号:将其入栈

4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。

5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈

6.最终将栈中的元素依次出栈,输出。

例如

a+b*c+(d*e+f)*g ---->abc*+de*f+g*+

遇到a:直接输出:

后缀表达式:a

堆栈:空

遇到+:堆栈:空,所以+入栈

后缀表达式:a

堆栈:+

遇到b: 直接输出

后缀表达式:ab

堆栈:+

遇到*:堆栈非空,但是+的优先级不高于*,所以*入栈

后缀表达式: ab

堆栈:*+

遇到c:直接输出

后缀表达式:abc

堆栈:*+

遇到+:堆栈非空,堆栈中的*优先级大于+,输出并出栈,堆栈中的+优先级等于+,输出并出栈,然后再将该运算符(+)入栈

后缀表达式:abc*+

堆栈:+

遇到(:直接入栈

后缀表达式:abc*+

堆栈:(+

遇到d:输出

后缀表达式:abc*+d

堆栈:(+

遇到*:堆栈非空,堆栈中的(优先级小于*,所以不出栈

后缀表达式:abc*+d

堆栈:*(+

遇到e:输出

后缀表达式:abc*+de

堆栈:*(+

遇到+:由于*的优先级大于+,输出并出栈,但是(的优先级低于+,所以将*出栈,+入栈

后缀表达式:abc*+de*

堆栈:+(+

遇到f:输出

后缀表达式:abc*+de*f

堆栈:+(+

遇到):执行出栈并输出元素,直到弹出左括号,所括号不输出

后缀表达式:abc*+de*f+

堆栈:+

遇到*:堆栈为空,入栈

后缀表达式: abc*+de*f+

堆栈:*+

遇到g:输出

后缀表达式:abc*+de*f+g

堆栈:*+

遇到中缀表达式结束:弹出所有的运算符并输出

后缀表达式:abc*+de*f+g*+

堆栈:空

5.C语言数据结构(写出下列中缀表达式的后缀表达式)

答案知道是对的。。为什么会不知到为什么对呢。

中缀表达式和我们平时的普通表达式差不多,而后缀表达式是遇到操作符进行归约的

比如(1)里的:A-。。。遇到-号,归约成-A(用X代替这个-A);XB+。。。碰到+号,归约成X+B(即:-A+B,这里的X+B用Y代替);YC-。。。碰到-号,归约成Y-C。。。后面照样归约就行了

我前面将的就相当于把后缀表达式翻译成中缀表达式,反过来的翻译方法其实也一样的

不知你明白没有,有问题可以再提

6.C语言 中缀表达式

写了个,你试试。

#include

#define is_digit(ch) ((ch) >= '0' && (ch) ','>','','>'},

{'>','>','','>'},

{'>','>','>','>','','>'},

{'>','>','>','>','','>'},

{'','>','>','>','$','>','>'},

{'')

{

*sp++ = *cp--;

*sp++ = ' ';

oci = get_cal_index(*cp);

}

if(pri[oci][nci] == '

7.中缀表达式转后缀表达式

要先设置一个运算符的栈st,从左只有扫描中缀表达式

1、如果遇到数字,直接放到后缀表达式尾;

2、如果遇到遇到运算符

a:若此时站空,则直接入栈;

b:循环:若栈st不空且栈顶运算符的优先级大于等于当前的运算符,则栈顶运算符出栈,置于后缀表达式尾;

c:若栈st不空且栈顶运算符的优先级小于当前的运算符,则将此运算符直接入栈;

反复执行1,2,知道整个中缀表达式扫描完毕,若此时栈st不空,则将栈顶的运算符依次出栈,依次置于后缀表达式尾。

中缀表达式怎么写

转载请注明出处育才学习网 » 中缀表达式怎么写

知识

死于疾病英语怎么写

阅读(1612)

本文主要为您介绍死于疾病英语怎么写,内容包括死于疾病用英语怎么说,求死于疾病英语翻译快点,死于疾病用英语怎么说“dieofhunger”or“diefromhunger”为什。“死于车祸”的英文是die from a car accident。表示死的原因,die 后既可接介词

知识

世顺拼音怎么写

阅读(169)

本文主要为您介绍世顺拼音怎么写,内容包括世,拼音怎么写,顺的拼音怎么写,世的笔顺怎么写。世的笔顺是横, 竖, 竖, 横, 竖折/竖弯,笔画图是:

知识

书包的音节英调怎么写

阅读(211)

本文主要为您介绍书包的音节英调怎么写,内容包括书包里有书的拼音音节怎么写,24个拼音字母大全怎么写,英语口语的升降调该如何把握。声母:b p m f d t n l g k h j q x zhi chi shi ri zi ci si yi wu 单韵母:a (

知识

手机有网英文怎么写

阅读(196)

本文主要为您介绍手机有网英文怎么写,内容包括手机用英语怎么写,手机的英文简写是什么,手机的英文缩写是什么。手机用英语表达:Mobile phone重点词汇:phone读音: 英 [fəʊn]美 [foʊn] 二、意思是:电话;电话机;听筒;耳

知识

书橱的拼音怎么写的

阅读(218)

本文主要为您介绍书橱的拼音怎么写的,内容包括书柜的音节和声调是怎么写的,书柜的音节和声调是怎么写的,怎么仿写是仿写书橱的。书柜拼音: [shū guì] 基本释义1. 亦作“ 书匮 ”。放置书籍的柜子。《晋书·刘曜载记》:“初, 曜 之亡与 曹恂

知识

实体店怎么写宣传文案

阅读(231)

本文主要为您介绍实体店怎么写宣传文案,内容包括怎么为自己的店铺实体店做宣传,实体门店怎么推广,做宣传,实体店新店开张,怎么样宣传,怎么样才能留住客户。制作各种广告。如特色店面广告、招贴广告、霓红灯广告以及电视广告等,利用广告大力

知识

诗乃的英文名怎么写

阅读(230)

本文主要为您介绍诗乃的英文名怎么写,内容包括刀剑神域诗乃英语角色名,乃字的英文怎么写,乃字的英文怎么写。乃=adv.1. so; therefore; hence It was a steep climb, so we rested for

知识

种藕拼音怎么写

阅读(209)

本文主要为您介绍种藕拼音怎么写,内容包括种藕的种的读音,莲花的莲的拼音怎么写,“莲”的拼音怎么写。

知识

防水剂怎么用

阅读(223)

本文主要为您介绍防水剂怎么用,内容包括防水剂怎么用,混凝土防水剂应该怎么用,怎样使用堵漏王防水剂。防水剂的主要用途是配制硅水,表面喷涂,防水砂浆等方面。有机硅防水剂使用方法:配制硅水:按有机硅防水剂:水=1:15--30的体积比例配制

知识

家湿器怎么用

阅读(170)

本文主要为您介绍家湿器怎么用,内容包括加湿器的正确使用方法,加湿器怎样使用最健康,家用加湿器初次使用需要注意什么。加湿器使用时间不要太长,一般用几个小时就可以关掉,过于潮湿则会引发肺炎等疾病。无须整天开着。冬季最适宜的空气湿度是

知识

起酒器怎么用

阅读(174)

本文主要为您介绍起酒器怎么用,内容包括这款起酒器怎么用,开酒器怎么用,这款起酒器怎么用。兔耳型开瓶器兔耳型开瓶器是一种快速开瓶器,因其两个用于夹住葡萄酒瓶颈的把手象兔耳而得名。它在“兔耳”把手夹住瓶颈后,快速压下压杆,使螺旋

知识

自助用英语怎么说

阅读(228)

本文主要为您介绍自助用英语怎么说,内容包括自助餐用英语怎么说,自助的英语自助用英语怎么说,自助者自助用英文怎么说、。自助餐的英文:buffet英文发音:[ˈbʊfeɪ;ˈbʌfɪt]中文释义:n. 自助餐;小卖部;打击;猛烈冲击例句:A cold bu

知识

怎么给宝宝用开塞露

阅读(232)

本文主要为您介绍怎么给宝宝用开塞露,内容包括怎么给宝宝用开塞露4个步骤要掌握,开塞露可以给宝宝用吗育儿问答宝宝树,请问婴儿开塞露怎么用。一般正常情况下,我想是没有人会用开塞露的.只有在需要用的时候才用.像楼主说到宝宝这种情况就可

知识

用烤箱怎么烤茄子

阅读(227)

本文主要为您介绍用烤箱怎么烤茄子,内容包括如何用烤箱烤茄子,用烤箱如何烤茄子,如何用烤箱烤茄子茄子。用料:长茄子两个。2、辣椒粉两大匙(可依个人喜好增减)。3、花椒粉一小匙(可依个人喜好增减)。4、孜然粉一大匙(可依个人喜好增减)。5、

知识

sql约束表达式怎么写

阅读(233)

本文主要为您介绍sql约束表达式怎么写,内容包括sql约束表达式,sql约束表达式,sql表check约束表达式怎么写发帖时间早于回复时间。首先我们打开电脑里的SQL资源管理器,如图是一个Student表其中我们主要针对于这个表中的Phone这一列来进行演示

知识

ip地址正则表达式怎么写

阅读(218)

本文主要为您介绍ip地址正则表达式怎么写,内容包括ip地址的正则表达式怎么写,IP地址的正则表达式怎么写,IP地址正则表达式。IP地址的正则表达式:^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[

知识

vb表达式怎么写

阅读(255)

本文主要为您介绍vb表达式怎么写,内容包括vb表达式如何写,VB中算术表达式ln10用VB表达式怎么表示,vb表达式怎么写。Log 函数 返回一个 Double,指定参数的自然对数值.语法 Log(number) 必要的 number 参数是 Double 或

知识

check约束表达式怎么写

阅读(875)

本文主要为您介绍check约束表达式怎么写,内容包括数据库中的CHECK约束的表达式怎样写才能使表中的一列只能取3个值,求两个数据库check约束的表达式怎么写,CHECK约束中的表达式格式。什么数据库?普通的 Oracle , D

知识

c语言几次方怎么写表达式

阅读(344)

本文主要为您介绍c语言几次方怎么写表达式,内容包括c语言中怎么表示多次方,请问C语言开多次方要怎么表达呢,C语言中如何表达10的几次方。c语言中表示乘方的函数为pow()头文件:#include <math.h>函数原型:double pow(double x, doub

知识

c语言scanf的表达式怎么写

阅读(284)

本文主要为您介绍c语言scanf的表达式怎么写,内容包括C语言中的Scanf的用法,c语言中的scanf函数的用法,C语言中for语句中的表达式一能不能写scanf语句呢。scanf 函数最主要的用法是:scanf("输入控制符", 输入参数);函数原型:int scanf(const char *

知识

指针表达式怎么写

阅读(220)

本文主要为您介绍指针表达式怎么写,内容包括什么叫指针表达式,指针表达式怎么确定指针表达式是一个左值,什么叫指针表达式。先教你一个区分左值和右值的方法:你可以试着对表达式进行取址操作,如果表达式不能进行取址的话,那么就可以看做右值。

知识

html标签里怎么写el表达式

阅读(579)

本文主要为您介绍html标签里怎么写el表达式,内容包括怎样用EL表达式或标准标签输出HTML标记,EL表达式可以在html页面里使用吗,html支持el表达式吗。使用 thymeleaf 就像jstl标签库一样使用,可以让html变得和jsp一样使用

[/e:loop]