阅读以下说明和图4-6,回答问题1至问题4。【说明】本流程图(如图4-6所示)是将中缀表示的算术表达式转换成后缀表示。如中缀表达式 (A-(B*C+D)*E)/(F+G)的后缀表示为ABC*D+E*-FG+/。为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达式非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下。. 数组IN[]存储中缀表达式。. 数组POLISH[]存储其后缀表示。. 数

题目

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

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


相似考题
更多“ 阅读以下说明和图4-6,回答问题1至问题4。【说明】本流程图(如图4-6所示)是将中缀表示的算术表达式转换成后缀表示。如中缀表达式 (A-(B*C+D)*E)/(F+G)的后缀表示为ABC*D+E*-FG+/。为”相关问题
  • 第1题:

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

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

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

  • 第2题:

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

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

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

  • 第3题:

    【填空题】在将中缀表达式转换成后缀表达式和计算后缀表达式的算法中,都需要使用栈,对于前者,进入栈中的元素为表达式中的 ,而对于后者,进入栈的元素为     ,中缀表达式(a+b)/c-(f-d/c)所对应的后缀表达式是 。


    步骤待处理的中缀表达式 栈状态(顶←→底) 已输出的后缀表达式 1 D-B+C 2 -B+C D 3 B+C - D 4 +C - D B 5 C + D B- 6 + D B-C 7 D B-C+$步骤待处理的中缀表达式栈状态(顶←→底) 已输出的后缀表达式 1 A*B+C*D 2 *B+C*D A 3 B+C*D * A 4 +C*D * AB 5 C*D + AB* 6 *D + A B*C 7 D *+ A B*C 8 *+ A B*C D 9 A B*C D*+$步骤待处理的中缀表达式 栈状态(顶←→底) 已输出的后缀表达式 1 (A+B)*C-D*F+C 2 A+B)*C-D*F+C ( 3 +B)*C-D*F+C ( A 4 B)*C-D*F+C +( A 5 )*C-D*F+C +( A B 6 *C-D*+b C A B+ 7 C-D*F+C * A B+ 8 -D*F+C * A B+C 9 D*F+C - A B+C* 10 *F+C - A B+C*D 11 F+C *- A B+C*D 12 +C *- A B+C*D F 13 C + A B+C*D F*- 14 + A B+C*D F*-C 15 A B+C*D F*-C+

  • 第4题:

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

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

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

  • 第5题:

    中缀表达式为(a+b*c)/d+e*f,则其后缀表达式为_______(答案不要有空格)。


    A B + C × D E / -