阅读下列说明和算法,回答问题1和问题2。 【说明】 算法5-1用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如表5-1所示。 在算法5-1中,stack为一整数栈。算法中各函数的说明如

admin2009-05-15  44

问题 阅读下列说明和算法,回答问题1和问题2。
   【说明】
   算法5-1用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如表5-1所示。

在算法5-1中,stack为一整数栈。算法中各函数的说明如表5-2所示。

【算法5-1】
  将栈stack置空,置EOF为false
  ch←nextch();
  while(not EOF)
     k←kind(ch);
     ifk== (1) )
      push( (2) ;push( (3) ;
     else if(k== (4) )
        if(not empty())
            pop();pop();
        else
            显示错误信息(缺少对应左括号或右括号);
            显示行号row;显示列号col;
        endif
     endif
     ch←nextch();
  endwhile
  if(not empty())
      显示错误信息(缺少对应左括号或右括号);
      while(not empty())
       row←pop();col←pop();
       显示行号row; 显示列号col;
     endwhile
  endif
  为了识别更多种类的括号,对算法5-1加以改进后得到算法5-2。算法5-2能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kind(charch)的参数及其对应的返回值如表5-3所示。

【算法5-2】
    将栈stack置空, 置EOF为false
    ch←nextch();
    while(not EOF)
         k←kind(ch);
         if(k>0)
              if(判断条件 1)
                    push(  (5)  ); push(  (6)  ); push(  (7)  );
              else if(判断条件2 and 判断条件3)
                    pop(); pop(); pop();
              else
                    显示错误信息(缺少对应左括号或右括号);
                    显示行号row: 显示列号col;
              endif
         endif
         ch←nextch();
    endwhile
    if(not empty())
           显示错误信息(缺少对应左括号或右括号);
           while(not empty())
                pop(); row←pop(); col←pop();
                显示行号row; 显示列号col;
           endwhile
    endif

选项

答案(1) 1 (2) col (3) row (4) 2 (5) col (6) row (7) k

解析
转载请注明原文地址:https://kaotiyun.com/show/s5xZ777K
0

相关试题推荐
最新回复(0)