itgle.com
参考答案和解析
参考答案:√
更多“判断一个表达式中左右括号是否匹配,采用栈实现较为方便。() ”相关问题
  • 第1题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。在检查表达式“a*(b+c))-d”时,由于( ),因此可判断出该表达式中的括号不匹配。

    A.需要进行出栈操作但栈已空
    B.需要进行入栈操作但栈已满
    C.表达式处理已结束,但栈中仍留有字符“(”
    D.表达式处理已结束,但栈中仍留有字符")”

    答案:A
    解析:
    第二个右括号要执行出栈操作,但没有对应的左括号可执行出栈。

  • 第2题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空, 然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于( ),因此可判断出该表达式中的括号不匹配。

    A.需要进行出栈操作但栈已空
    B.需要进行入栈操作但栈已满
    C.表达式处理已结束,但栈中仍留有字符“(”
    D.表达式处理已结束,但栈中仍留有字符“)”

    答案:A
    解析:
    本题考查出栈入栈的基础知识。左括号入站,右括号出栈,,该题中括号为:()),所以当执行第2个右括号时,第一个左括号已经出栈了,栈为空栈故正确答案为:A

  • 第3题:

    假设表达式中允许包含3种括号:圆括号、方括号和大括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。


    设置一个栈 st,扫描表达式 exp,遇到‘(’、‘[’或‘{’,则将其进栈;遇到‘)’ , 若栈顶是‘(’,则继续处理,否则以不配对返回假;遇到‘]’,若栈顶是‘[’,则继续处理, 否则以不配对返回假;遇到‘}’ ,若栈顶是‘{’ ,则继续处理,否则以不配对返回假。在 exp 扫描完毕,若栈不空,则以不配对返回假;否则以括号配对返回真。本题算法如下: bool Match(char exp[],int n) { LinkStNode *ls; InitStack(ls); int i=0; ElemType e; bool flag=true; while (i

  • 第4题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空, 然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于( ),因此可判断出该表达式中的括号不匹配。

    A. 需要进行出栈操作但栈已空
    B. 需要进行入栈操作但栈已满
    C. 表达式处理已结束,但栈中仍留有字符“(”
    D. 表达式处理已结束,但栈中仍留有字符“)”

    答案:A
    解析:
    左括号入站,右括号出栈,, 该题中括号为: ( ) ) ,所以当执行第2个右括号时,第一个左括号已经出栈了,栈为空栈

  • 第5题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于( ),因此可判断出该表达式中的括号不匹配。

    A.需要进行出栈操作但栈已空
    B.需要进行入栈操作但栈已满
    C.表达式处理已结束,但栈中仍留有字符“(”
    D.表达式处理已结束,但栈中仍留有字符“)”

    答案:A
    解析: