问答题 设表达式以字符形式已存入数组E[n]中,‘#’为表达式的结束符,试写出判断表达式中括号(’(’和’)’)是否配对的C语言描述算法:EXYX(E)。(注:算法中可调用栈操作的基本算法。)【北京科技大学2001九、1(10分)】
【正确答案】正确答案:判断表达式中括号是否匹配,可通过栈,简单说是左括号时进栈,右括号时退栈。退栈时,若栈顶元素是左括号,则新读入的右括号与栈顶左括号就可消去。如此下去,输入表达式结束时,栈为空则正确,否则括号不匹配。本题只检查圆括号的配对。一般情况是检查花括号(‘{’,’)’)、方括号(’[’,’]’)和圆括号(’(’,’)’)的配对问题。栈顶括号与读入的括号匹配,才消除一对括号,否则,就结论括号不配对。最后栈空表示括号匹配。
【答案解析】