括号匹配的检验P49.pptVIP

  • 4
  • 0
  • 约小于1千字
  • 约 7页
  • 2017-08-17 发布于天津
  • 举报
括号匹配的检验P49.ppt

习题集: P21:3.1,3.7, 3.29、3.31, 4.3,4.13 教材: P49:写一个算法实现“括号匹配的检验” P49:写一个算法实现“括号匹配的检验” 1)左括号:进栈 2)右括号 栈空:右括号多了 匹配:左括号出栈 不匹配 3)表达式检测完 栈空:正确 非空:左括号多了 Status match(SString exp) {//若括号匹配返回TRUE,否则,返回FALSE state=1; len=StrLength(exp); i=1; //若比较过程中出现括号不匹配,置state=0 while(i=len state) {……} if(state StackEmpty(S)) return TRUE; else return FALSE; }//match //while Switch(exp[i]) {case ‘(’: case ‘[’ : {PUSH(S,exp[i]); i++; break;} case ‘)’: {if(!StackEmpty(S) GetTop(S)=‘(’) {POP(S,e); i++;} else state=0; break; } Case ‘]’: …… } 3.31 判别读入的字符序列是否为“回文”。 算法的基本思想是: 将依次读入的字符分别插入栈和队列,然后依次比较“栈顶”和“队头”的字符。 Status palindrome ( ) { // 若从终端依次输入的字符序列是“回文”, // 则返回TRUE,否则返回FALSE InitStack(S); InitQueue(Q); ch=getchar( ); while(ch!=?@?) { Push(S, ch); EnQueue(Q, ch); getchar(ch); } while(!StackEmpty(S)) { Pop(S,a); DeQueue(Q,b); if(a!=b) return FALSE; } return TRUE; } * *

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档