阅读以下算法说明和C程序,根据要求回答问题1和问题2。 【说明】 【算法4-1】的功能是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号而没有对应的左括号或者右括号,则给出相应的提示信息,如图1-18所示。 在【算法4-1】中,slac

admin2009-02-15  36

问题 阅读以下算法说明和C程序,根据要求回答问题1和问题2。
   【说明】
   【算法4-1】的功能是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号而没有对应的左括号或者右括号,则给出相应的提示信息,如图1-18所示。

在【算法4-1】中,slack为一整数栈。算法中各函数的说明如表1-11所示。

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

【算法4-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;)
           end if
       end if
       ch <- nextch();)
end while
if(not empty()){
   显示错误信息(缺少对应左括号或右括号);
   While(not empty()){
       Pop();
       row <- pop():
       col <- pop();
       显示行号row;显示列号col;))
   end while
end if

选项

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

解析
转载请注明原文地址:https://jikaoti.com/ti/wrW7FFFM
0

最新回复(0)