更多“借助堆栈将中缀表达式A-(B-C/D)*E转换为后缀表达式,则该堆栈的大小至少为:”相关问题
  • 第1题:

    表达式“a*(b-c)+d”的后缀式为______。

    A.abcd*-+

    B.ab*c-d+

    C.ab-cd+*

    D.abc-*d+

    A.

    B.

    C.

    D.


    正确答案:D

  • 第2题:

    阅读以下说明和流程图(如图1所示),回答问题1至问题4。

    【说明】

    本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式

    (A-(B*C+D)*E)/(F+G))

    的后缀表示为

    ABC*D+E*-FG+/

    为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:

    数组 IN[]存储中缀表达式;

    数组 POLISH[]存储其后缀表达式;

    数组 S[]是一个后进先出栈;

    函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:

    填充流程图中①的判断条件。


    正确答案:PRIOR(IN[i]):PRIOR(S[p])
    PRIOR(IN[i]):PRIOR(S[p])

  • 第3题:

    算术表达式a+b*(c+d/e)可转换为后缀表达式( )。

    A.abcde*/++

    B.abcde/+*+

    C.abcde*+/+

    D.abcde/*++


    正确答案:B
    解析:后缀表达式即逆波兰式。逆波兰式是波兰逻辑学家卢卡西维奇(Lukasiewicz)发明的一种表示表达式的方法。这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ah+,所以也称为后缀式。这种表示法的优点是根据运算对象和运算符的出现次序进行计算,不需要使用括号,也便于实现求值。

  • 第4题:

    ●试题一

    阅读以下说明和流程图(如图1所示),回答问题1至问题4,将答案写在答卷的对应栏内。

    【说明】

    本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式

    (A-(B*C+D)*E)/(F+G))

    的后缀表示为

    ABC*D+E*-FG+/

    为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:

    数组IN[]存储中缀表达式;

    数组POLISH[]存储其后缀表达式;

    数组S[]是一个后进先出栈;

    函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:

    【问题1】

    填充流程图中①的判断条件。

    【问题2】

    写出子程序A的功能,并顺序写出实现该功能的操作

    【问题3】

    写出子程序B的功能,并顺序写出实现该功能的操作。

    【问题4】

    中缀表达式

    (A+B-C*D)*(E-F)/G

    经该流程图处理后的输出是什么?

    【流程图】

    图1


    正确答案:
    ●试题一[问题1]【答案】PRIOR(IN[i]):PRIOR(S[p])[问题2]【答案】功能:将当前符号IN[i]入栈操作:p+1->pIN[i]->S[p][问题3]【答案】功能:出栈操作:k+1->kS[p]->POLISH[k]p-1->p[问题4]【答案】AB+CD*-EF-*G/【解析】本题考查栈的使用和中序表达式与后缀表达式的互换。

  • 第5题:

    若某算术表达式用二叉树表示如下, 则该算术表达式的中缀式为(请作答此空), 其后缀式为( )。

    A.a-b+c*d
    B.a-(b+c)*d
    C.(a-(b+c))*d
    D.a-(b+c*d)(31)

    答案:C
    解析:
    中缀式的表达式接近人们进行数学计算使用的表达式,因此30题选择C。后缀式是采用左、右、根的方式进行遍历。

  • 第6题:

    中缀表达式A-(B+C/D)*E的后缀形式是()。

    A.AB-C+D/E*
    B.ABC+D/-E*
    C.ABCD/E*+-
    D.ABCD/+E*-

    答案:D
    解析:
    将中缀表达式表示成二叉树的形状,则这棵二叉树的后序遍历序列即为表达式的后缀形式。

  • 第7题:

    某算术表达式用二叉树表示如下,该算术表达式的中缀式为( ),其后缀式为(请作答此空)。

    A.abc+-d*
    B.abcd*+-
    C.ab-c+d*
    D.abcd+*-

    答案:A
    解析:
    前序遍历:先访问根结点,再依次按前序遍历的方式访问根结点的左子树、右子树中序遍历:先中序遍历根结点的左子树,再访问根结点,再中序遍历根结点的右子树后序遍历:先中序遍历根结点的左子树,再中序遍历根结点的右子树,再访问根结点二叉树采用中序遍历得中缀表达式,采用后序遍历得后缀表达式

  • 第8题:

    算术表达式a+b*(c+d/e)可转换为后缀表达式()。

    • A、abcde*/++
    • B、abcde/+*+
    • C、abcde*+/+
    • D、abcde/*++

    正确答案:B

  • 第9题:

    中缀表达式A-(B+C/D)*E的后缀表达式形式是()。

    • A、AB-C+D/E*
    • B、ABC+D/-E*
    • C、ABCD/E*+-
    • D、ABCD/+E*-

    正确答案:D

  • 第10题:

    后缀算术表达式24 8 + 3 * 4 10 7 - * /所对应的中缀算术表达式为(),其值为()。


    正确答案:(24+8)*3/(4*(10-7));8

  • 第11题:

    单选题
    中缀表达式A-(B+C/D)*E的后缀表达式形式是()。
    A

    AB-C+D/E*

    B

    ABC+D/-E*

    C

    ABCD/E*+-

    D

    ABCD/+E*-


    正确答案: D
    解析: 暂无解析

  • 第12题:

    单选题
    表达式"a*(b-c)+d"的后缀式为()。
    A

    abcd*-+

    B

    ab*c-d+

    C

    ab-cd+*

    D

    abc-*d+


    正确答案: C
    解析: 在后缀表示方式下,运算对象自左至右依次书写,运算符紧跟在需要参与运算的对象后面。对于"a*(b-c)+d",运算次序为b-c,之后与a相乘,最后再与d相加,因此其后缀表示为"abc-*d+"。

  • 第13题:

    中缀表达式A-(B+C/D)*E的后缀形式是(36)。

    A.AB-C+D/E*

    B.ABC+D/-E*

    C.ABCD/E*+-

    D.ABCD/+E*-


    正确答案:D
    解析:本题考查的内容实质是二叉树的遍历。在算术表达式的二叉树中,运算符占据着根结点的位置,而被运算的数都是树中的叶子结点。中缀表达式反映出了表达式的运算次序,如题目中的表达式A-(B+C/D)*E,首先运算括号里面的,再运算乘法,最后才是减法。在二叉树中,最先运算的操作是子树,最后运算的操作符才是根结点。根据中缀表达式A-(B+C/D)*E,我们很容易画出其对应的二叉树,再对此二叉树进行后序遍历得到ABCD/+E*-。

  • 第14题:

    阅读以下说明和图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所示。

    填充流程图中①的判断条件。


    正确答案:PRIOR(IN[i]):PRIOR(S[p])
    PRIOR(IN[i]):PRIOR(S[p])

  • 第15题:

    表达式可采用后缀形式表示,例如,“a+b”的后缀式为“ab+”.那么,表达式“a*(b-c)+d”的后缀式表示为( )。

    A.abc-*d+B.Abcd*-+C.abcd-*+D.ab-c*d+


    正确答案:A

  • 第16题:

    若某算术表达式用二叉树表示如下, 则该算术表达式的中缀式为( ), 其后缀式为(请作答此空)。

    A.abc+-d*
    B.abcd*+-
    C.ab-c+d*
    D.abcd+*-

    答案:A
    解析:
    中缀式的表达式接近人们进行数学计算使用的表达式,因此30题选择C。后缀式是采用左、右、根的方式进行遍历。

  • 第17题:

    表达式可采用后缀形式表示,例如,“a+b”的后缀式为“ab+”. 那么,表达式“a*(b-c)+d”的后缀式表示为(33)

    A.abc-*d+
    B.Abcd*-+
    C.abcd-*+
    D.ab-c*d+

    答案:A
    解析:
    要先看运算顺序,为b-c,表示为bc-,然后是a*(b-c),表示为abc-*,最后a*(b-c)+d表示为abc-*d+

  • 第18题:

    某算术表达式用二叉树表示如下,该算术表达式的中缀式为(请作答此空),其后缀式为( )。

    A.a-b+c*d
    B.a-(b+c)*d
    C.(a-(b+c))*d
    D.a-(b+c*d)

    答案:C
    解析:
    前序遍历:先访问根结点,再依次按前序遍历的方式访问根结点的左子树、右子树中序遍历:先中序遍历根结点的左子树,再访问根结点,再中序遍历根结点的右子树后序遍历:先中序遍历根结点的左子树,再中序遍历根结点的右子树,再访问根结点二叉树采用中序遍历得中缀表达式,采用后序遍历得后缀表达式

  • 第19题:

    算术表达式a*(b-c)+d的后缀式是( )。

    A.ab-cd+*
    B.abcd-*+
    C.abc-*d+
    D.ab-c+d*

    答案:C
    解析:
    本题考查程序语言基础知识。
    后缀式(逆波兰式)是波兰逻辑学家卢卡西维奇发明的一种表示表达式的方法。这种表示方式把运算符写在运算对象的后面,例如把a+b写成ab+,所以也称为后缀式。算术表达式"a*(b-c)+d"的后缀式是"abc-*d+"。

  • 第20题:

    表达式"a*(b-c)+d"的后缀式为()。

    • A、abcd*-+
    • B、ab*c-d+
    • C、ab-cd+*
    • D、abc-*d+

    正确答案:D

  • 第21题:

    中缀表达式3*(X+2)-5所对应的后缀表达式为()。


    正确答案:3*2+*5

  • 第22题:

    单选题
    算术表达式a+b*(c+d/e)可转换为后缀表达式()。
    A

    abcde*/++

    B

    abcde/+*+

    C

    abcde*+/+

    D

    abcde/*++


    正确答案: A
    解析: 算术表达式a+b*(c+d/e)可转换为后缀表达式abcde/+*+。

  • 第23题:

    填空题
    后缀算术表达式24 8 + 3 * 4 10 7 - * /所对应的中缀算术表达式为(),其值为()。

    正确答案: (24+8)*3/(4*(10-7)),8
    解析: 暂无解析

  • 第24题:

    填空题
    中缀表达式3*(X+2)-5所对应的后缀表达式为()。

    正确答案: 3*2+*5
    解析: 暂无解析