Status Matching(){
// 试写一个判别表达式中开、闭括号是否配对出现的算法。
//表达式以# 结束
InitStack(s); //初始化空栈
int flag = 1;
cin>>ch;
while(ch!='#'&&flag){ //以'#'结束
switch(ch){
case '[':
case '(': // 左括号 压栈
push(s,ch);
break;
case ')':
if(!StackEmpty(s)&&GetTop(s)=='(')
pop(s,x); //非空并且栈顶元素是( 则正确匹配
else flag = 0; // 若为空或者部署( 则错误匹配
break;
case ']':
if(!StackEmpty(s)&&GetTop(s) =='[')
pop(s.x);
else flag = 0;
break;
}
cin>>ch;
}
if(StackEmpty(s)&&flag) return true;
else return false;
}
数据结构 写一个判别表达式中开、闭括号是否配对出现的算法。
最新推荐文章于 2021-10-23 14:30:03 发布