还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
表达树试题及答案
一、单项选择题(共30题,每题1分,共30分)(每题只有一个正确答案,将正确选项前的字母填在括号中)
1.下列关于表达树的描述,正确的是()A.表达树是一种线性数据结构B.表达树的叶子节点存储运算符C.表达树的中序遍历结果为后缀表达式D.表达树可用于表达式求值
2.构造表达树时,通常以()作为根节点A.操作数B.最内层运算符C.最外层运算符D.任意运算符
3.表达式“a+b*c-d”对应的中缀表达式是()A.a+b*c-dB.a+b*c-dC.a+b*c-dD.a+b-c*d
4.若某表达树的前序遍历序列为“+a*bc”,则中序遍历序列为()A.a+b*cB.ab+*cC.abc+*D.a*b+c
5.表达式树中,每个内部节点(非叶子节点)对应()A.操作数第1页共13页B.运算符C.左子树D.右子树
6.下列关于中序遍历表达树的描述,正确的是()A.先访问根节点,再访问左子树,访问右子树B.先访问左子树,再访问根节点,访问右子树C.先访问左子树,再访问右子树,访问根节点D.先访问右子树,再访问根节点,访问左子树
7.构造表达树时,若表达式含括号“a+b*c-d”,括号的作用是()A.改变运算符优先级B.影响树的深度C.增加节点数量D.无实际作用
8.下列哪种遍历方式得到的表达式是前缀表达式()A.前序遍历B.中序遍历C.后序遍历D.层序遍历
9.表达树的叶子节点数量与内部节点数量的关系是()A.叶子节点数=内部节点数+1B.叶子节点数=内部节点数-1C.叶子节点数=内部节点数×2D.无固定关系
10.表达式“a-b+c*d”对应的中序表达式是()第2页共13页A.a-b+c*dB.a-b+c*dC.a-b+c*dD.a-b+c*d
11.若表达树的后序遍历序列为“abc+*d-”,则根节点是()A.aB.+C.*D.-
12.构造表达树时,操作数和运算符的存储方式是()A.操作数存左子树,运算符存右子树B.运算符存左子树,操作数存右子树C.操作数存根节点,运算符分左右子树D.运算符存根节点,操作数分左右子树
13.下列关于表达树的说法,错误的是()A.可将中缀表达式转换为表达树B.表达树是二叉树的一种应用C.表达树仅用于数学表达式D.表达树可通过遍历转化为不同类型的表达式
14.表达式“a+b*c-d”转化为中序表达式后,中序遍历表达树的结果是()A.a+b*c-dB.a+b*c-dC.a+b-c*dD.a+b*c-d第3页共13页
15.表达树中,若一个内部节点有左子树无右子树,可能的原因是()A.表达式含单目运算符(如负号“-a”)B.表达式语法错误C.节点构造时左子树优先D.操作数数量不足
16.下列遍历方式中,得到中缀表达式的是()A.后序遍历B.前序遍历C.中序遍历D.层序遍历
17.构造表达树时,若表达式为“a+b*c+d”,根节点是()A.+B.aC.bD.c
18.表达树的层序遍历(按层次)输出的表达式是()A.前缀表达式B.中缀表达式C.后缀表达式D.按层顺序的表达式
19.若某表达树的中序遍历结果为“a+b*c-d”,则该树的前序可能是()A.+a*bc-dB.-+a*bc d第4页共13页C.+a*b-cdD.a+b*c-d
20.表达式树中,中序遍历得到的是()A.操作符在中间,操作数在两边B.操作数在中间,操作符在两边C.操作符和操作数交替出现D.仅操作数
21.构造表达树时,“a-b+c”的正确根节点是()A.+B.-C.aD.b
22.下列关于后缀表达式(逆波兰式)的描述,正确的是()A.后缀表达式需通过后序遍历表达树得到B.后缀表达式需通过前序遍历表达树得到C.后缀表达式需通过中序遍历表达树得到D.后缀表达式无法通过表达树得到
23.表达树的深度是指()A.节点总数B.根节点到最深叶子节点的路径长度C.左右子树深度的最大值D.所有节点的最大子树数量
24.表达式“a*b+c-d/e”转化为表达树时,根节点的左子树对应()A.a*b+c第5页共13页B.b+cC.a*D.b+c*a
25.若表达树的前序遍历为“+a*bc”,则后序遍历为()A.abc+*B.ab+*cC.a*b+cD.abc*+
26.构造表达树时,操作数的数量比运算符的数量()A.多1个B.少1个C.相等D.无固定关系
27.下列表达式中,适合用表达树表示的是()A.a+b+c+dB.a+bc+dC.a+b*c+dD.10+20*30/
4028.表达树中,中序遍历“a+b*c-d”对应的树结构是()A.根为+,左子树为a,右子树为-*bc dB.根为-,左子树为+ab,右子树为*d cC.根为*,左子树为+a b,右子树为-d cD.根为+,左子树为a-b,右子树为c-d
29.若某表达树的后序遍历序列为“abc+*d-”,则中序遍历序列是()第6页共13页A.a+b*c-dB.a+b*c-dC.a+b*c-dD.a+b*c-d
30.表达树的主要应用不包括()A.表达式求值B.语法分析C.数据排序D.编译器实现
二、多项选择题(共20题,每题2分,共40分)(每题有多个正确答案,将正确选项前的字母填在括号中,多选、少选、错选均不得分)
1.下列关于表达树的说法,正确的有()A.表达树是一种二叉树结构B.表达树的节点可存储操作数或运算符C.表达树的叶子节点是操作数D.表达树的内部节点是运算符
2.构造表达树时,需遵循的规则有()A.运算符作为内部节点B.操作数作为叶子节点C.运算符优先级高的先构造子树D.括号可改变运算符优先级的处理顺序
3.表达树的遍历方式包括()A.前序遍历B.中序遍历第7页共13页C.后序遍历D.层序遍历
4.下列关于前序遍历表达树的描述,正确的有()A.根节点最先访问B.左子树比右子树先访问C.结果为前缀表达式(波兰式)D.无法保留运算符优先级
5.中序遍历表达树的特点有()A.操作数在中间,运算符在两边B.结果为中缀表达式C.可直接得到原表达式的运算顺序D.无法处理括号
6.后序遍历表达树得到的表达式特点包括()A.操作符在B.为后缀表达式(逆波兰式)C.无需括号即可确定运算顺序D.叶子节点为操作数
7.表达树的深度与哪些因素有关()A.表达式的长度B.运算符的优先级C.括号的使用D.操作数的数量
8.构造表达树时,可能出现的错误有()A.操作数与运算符数量不匹配B.括号不匹配第8页共13页C.单目运算符(如“-a”)未处理D.双目运算符(如“+”)只有一个操作数
9.表达树在工程中的应用场景有()A.实现计算器功能B.编译原理中的语法分析C.数据结构中的排序算法D.表达式求值(如数学公式计算)
10.下列表达式中,构造表达树时根节点为“+”的有()A.a+b*cB.a+b*c+dC.a+b+cD.a+b*c
11.关于表达树与普通二叉树的区别,正确的有()A.表达树节点存储的是操作数或运算符B.表达树的遍历结果与原表达式相关C.表达树的构造依赖于表达式语法D.表达树仅能表示数学表达式
12.中缀表达式转换为表达树的步骤包括()A.确定运算符优先级B.处理括号,明确子表达式范围C.以最高优先级运算符为根节点D.递归构造左右子树
13.表达树的性质有()A.叶子节点数=内部节点数+1B.若表达式含n个运算符,则叶子节点数为n+1第9页共13页C.是一种平衡二叉树D.中序遍历结果为中缀表达式
14.下列关于前缀表达式(波兰式)的描述,正确的有()A.可通过前序遍历表达树得到B.运算符在操作数之前C.无需括号即可计算D.前序遍历是前缀表达式
15.构造表达树时,若表达式为“a+b-c+d”,可能的树结构有()A.根为+,左子树为a-b,右子树为+c dB.根为-,左子树为a+b,右子树为c+dC.根为+,左子树为a+b,右子树为c-dD.根为-,左子树为a+b-c,右子树为d
16.表达树中,单目运算符(如“-a”)的特点有()A.只有一个子节点B.根节点为单目运算符C.左子树为操作数,右子树为空D.右子树为操作数,左子树为空
17.下列关于层序遍历表达树的描述,正确的有()A.按层次从左到右访问节点B.结果为“层序表达式”C.可用于分析表达式的结构层次D.无法反映原表达式的运算顺序
18.表达树的应用优势包括()A.结构直观,易于理解B.可通过遍历快速转换为不同类型表达式第10页共13页C.支持复杂表达式(含括号、多目运算符)D.存储和处理效率高于线性表达式
19.构造表达树时,处理“a*b+c-d”的正确步骤有()A.确定优先级*+、-,先构造“a*b”子树B.构造“a*b+c”子树,根为+C.构造“a*b+c-d”子树,根为-D.根节点为-,左子树为“a*b+c”,右子树为d
20.下列关于表达树遍历的说法,正确的有()A.同一表达树的不同遍历方式结果不同B.前序遍历结果为前缀表达式C.中序遍历结果为中缀表达式D.后序遍历结果为后缀表达式
三、判断题(共20题,每题1分,共20分)(对的打“√”,错的打“×”)
1.表达树是一种线性数据结构()
2.表达树的叶子节点存储运算符()
3.中序遍历表达树得到的是后缀表达式()
4.表达树的根节点一定是运算符()
5.构造表达树时,操作数数量比运算符数量多1个()
6.前序遍历表达树得到的表达式无需括号即可确定运算顺序()
7.表达树中,左子树表示表达式的左部分,右子树表示右部分()
8.表达式“a+b*c-d”的中序遍历结果为“a+b*c-d”()
9.单目运算符(如“-a”)在表达树中只有一个子节点()
10.表达树的深度是指节点总数()第11页共13页
11.中缀表达式转换为表达树时,括号不影响子树的构造()
12.后序遍历表达树得到的表达式是前缀表达式()
13.表达树可用于处理所有数学表达式(含单目、双目运算符)()
14.构造表达树时,若表达式含“a+b*c+d”,根节点为“+”()
15.层序遍历表达树的结果与原表达式的运算顺序完全一致()
16.表达树的叶子节点数等于内部节点数加1()
17.前缀表达式(波兰式)通过后序遍历表达树得到()
18.表达式“a+bc-d”的表达树根节点为“”()
19.表达树的中序遍历结果为原表达式的运算顺序()
20.表达树无法处理含“+”“-”“*”“/”以外的运算符的表达式()
四、简答题(共2题,每题5分,共10分)
1.简述表达树的构造过程(以中缀表达式为例)
2.举例说明表达树在表达式求值中的应用(如计算“a+b*c-d/e”的值)附参考答案
一、单项选择题D
2.C
3.A
4.A
5.B
6.B
7.A
8.A
9.A
10.DD
12.D
13.C
14.B
15.A
16.C
17.A
18.D
19.A
20.AA注“a-b+c”按运算顺序,根节点为“+”,左子树“a-b”,右子树“c”A
23.B
24.A
25.A
26.A
27.C
28.A
29.A
30.C
二、多项选择题第12页共13页ABCD
2.ABCD
3.ABCD
4.ABC
5.ABC
6.ABC
7.AC
8.ABCD
9.ABD
10.ACDABC
12.ABD
13.AB
14.ABCD
15.AC
16.AB
17.ACD
18.ABC
19.ACD
20.ABCD
三、判断题×
2.×
3.×
4.×操作数也可作为根节点,如单节点树“a”
5.√
6.√
7.√
8.×应为“a+b*c-d”的中序遍历结果
9.√
10.×深度是路径长度,非节点总数
11.×
12.×
13.√
14.√
15.×
16.√
17.×
18.√
19.√
20.×
四、简答题表达树构造过程(中缀表达式为例)
①确定运算符优先级,括号优先;
②以最高优先级运算符为根节点,其左侧子表达式构造左子树,右侧子表达式构造右子树;
③递归处理左、右子树,直至所有操作数为叶子节点表达树求值应用以表达式“a+bc-d/e”为例,构造表达树后,通过后序遍历(后缀表达式“abc+de/-”),按顺序计算先算b*c=a1,a+a1=b1,d/e=a2,b1-a2=结果(全文约2600字)第13页共13页。
个人认证
优秀文档
获得点赞 0