软件设计师真题,程序设计语言专项练习(十二)

视频讲解

软件设计师 上午题 程序设计专题

中缀、后缀表达式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

表达式采用逆波兰式表示时,利用 (22) 进行求值。(2015年下半年)
(22) A. 栈 B. 队列 C. 符号表 D. 散列表

后缀式(逆波兰式)是波兰逻辑学家卢卡西维奇发明的一种表示表达式的方法。

种表示方式把运算符写在运算对象的后面,例如,把 atb写成ab+,所以也称为后缀式。
借助栈可以方便地对后缀式进行求值。方法为:先创建一个初始为空的栈,用来存放运算数。对后缀表达式求值时,从左至右扫描表达式,若遇到运算数,就将其入栈,若遇到运算符,就从栈顶弹出需要的运算数并进行运算,然后将结果压入栈顶,如此重复,直到表达式结束。若表达式无错误,则最后的运算结果就存放在栈顶并且是栈中唯一的元素。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

语法树求中缀、后缀表达式

在这里插入图片描述

对算术表达式“(a+(b-c))*d”求值的运算处理顺序是:先进行b-c,然后与a相加,最后再与d相乘。只有选项B所示的二叉树与其相符。

在这里插入图片描述

对题中的二叉树进行后序遍历即可得该二叉树所表示表达式的后缀式,为“x 5 y+*a / b-”。

在这里插入图片描述

在这里插入图片描述

下面二叉树表示的简单算术表达式为 (21) 。(2018年下半年)

在这里插入图片描述

用二叉树表示由二元运算构造的算术表达式时,父结点表示运算符,左孩子表示第一个操作数,右孩子表示第二个操作数。
对于题图中的二叉树,根结点表示减运算,其被减数由乘运算给出,其减数为40;

对于乘运算,其被乘数为10,其乘数由加运算的结果提供,因此表达式为10*(20+30)-40.

某表达式的语法树如下图所示,其后缀式(逆波兰式)是 (20) 。(2020年下半年)

在这里插入图片描述

下图所示的二叉树表示的算数表达式是 (20) (其中的、/、表示乘、除、减运算)。(2021年下半年)*

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50843918/article/details/135012711