已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为()。A.-A+B*C/DEB.-A+B*CD/EC.-+*ABC/DED.-+A*BC/DE
已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为()。
A.-A+B*C/DE
B.-A+B*CD/E
C.-+*ABC/DE
D.-+A*BC/DE
B.-A+B*CD/E
C.-+*ABC/DE
D.-+A*BC/DE
参考解析
解析:将算术表达式的前缀形式、中缀形式和后缀形式分别看成二叉树的前序遍历、中序遍历和后序遍历,本题可转化成已知二叉树的中序遍历和后序遍历序列,如何求出其前序遍历序列。前序遍历的顺序是根结点,左子树,右子树;中序遍历的顺序是左子树,根结点,右子树;后序遍历的顺序是左子树,右子树,根结点;因此后序遍历中最后访问的结点是根结点,该结点将中序遍历分成两个子序列,分别为其左右子树的中序序列,之后递归应用这个过程,构造出一个二叉树,前序遍历该序列,即可得到表达式的前缀形式。
相关考题:
表达式“X=A+B×(C-D)/E”的后缀表示形式可以为(17)(运算符优先级相同时,遵循左结合的原则)。A.XAB+CDE/-×=B.XA+BC-DE/×=C.XABCD-×E/+=D.XABCDE+×-/=
表达式“X=A+B×(C-D)/E”的后缀表示形式可以为(20)(运算符优先级相同时,遵循左结合的原则)。A.XAB+CDE/-X:B.XA+BC-DE/×=C.XABCD-×E/+=D.XABCDE+×-/=
表达式“X=A+B×(C-D)/E”的后缀表示形式可以为(11)(运算符优先级相同时,遵循左结合的原则)。A.XAB+CDE/-×=B.XA+BC-DE/×=C.XABCD-xE/+=D.XABCDE+x-/=
阅读以下说明和流程图(如图1所示),回答问题1至问题4。【说明】本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式(A-(B*C+D)*E)/(F+G))的后缀表示为ABC*D+E*-FG+/为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:数组 IN[]存储中缀表达式;数组 POLISH[]存储其后缀表达式;数组 S[]是一个后进先出栈;函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:填充流程图中①的判断条件。
阅读以下说明和图4-6,回答问题1至问题4。【说明】本流程图(如图4-6所示)是将中缀表示的算术表达式转换成后缀表示。如中缀表达式 (A-(B*C+D)*E)/(F+G)的后缀表示为ABC*D+E*-FG+/。为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达式非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下。. 数组IN[]存储中缀表达式。. 数组POLISH[]存储其后缀表示。. 数组S[]是一个后进先出栈。函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级如表4-4所示。填充流程图中①的判断条件。
表达式可采用后缀形式表示,例如,“a+b”的后缀式为“ab+”. 那么,表达式“a*(b-c)+d”的后缀式表示为(33)A.abc-*d+ B.Abcd*-+ C.abcd-*+ D.ab-c*d+
单选题已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/,其前缀形式为( )。A-A+B*C/DEB-A+B*CD/EC-+*ABC/DED-+A*BC/DE