大学c语言数据结构,下图选择第四题,答案是啥呀,为什么,谢谢
2个回答
展开全部
选B,利用顺序栈
思路如下:
①for循环需要判断的一堆字符
②依次每个字符判断是否为左括号,如果是,则入栈。
③如果是右括号,先判断stack是否为空,如果为空,则说明没有和他匹配的左括号。程序直接return结束算法。
如果stack不为空(说明有和他匹配的左括号),则将stack出栈。
④for循环完毕,最后看stack是否为空。如果为空则说明左右括号都是成对出现,如果不为空则说明不匹配。
for(int i=0;i<ch.length;i++){
if(ch[i] == '(' ){
stack.push(ch[i]);
}
if(ch[i] == ')'){
if(stack.isEmpty()){
flag = false;
return ;
}else{
stack.pop();
}
}
}
if(stack.isEmpty()){
flag = true;
}
思路如下:
①for循环需要判断的一堆字符
②依次每个字符判断是否为左括号,如果是,则入栈。
③如果是右括号,先判断stack是否为空,如果为空,则说明没有和他匹配的左括号。程序直接return结束算法。
如果stack不为空(说明有和他匹配的左括号),则将stack出栈。
④for循环完毕,最后看stack是否为空。如果为空则说明左右括号都是成对出现,如果不为空则说明不匹配。
for(int i=0;i<ch.length;i++){
if(ch[i] == '(' ){
stack.push(ch[i]);
}
if(ch[i] == ')'){
if(stack.isEmpty()){
flag = false;
return ;
}else{
stack.pop();
}
}
}
if(stack.isEmpty()){
flag = true;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询