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-05-24 04:54:49 发布
本文介绍了一种用于判断表达式中括号是否正确配对的算法。通过使用栈数据结构,算法能有效处理各种括号类型,如圆括号()、方括号[]等。当读取到左括号时,将其压入栈中;遇到右括号时,则检查栈顶元素是否为相应的左括号,以此来判断括号是否匹配。

4164

被折叠的 条评论
为什么被折叠?



