数据结构-栈的实现之括号匹配检测
1 void Matching(char e[])
2 {
3 Stack S;
4 InitStack(S);
5 unsigned int i = 0, state = 1;
6 char z;
7 while((int)(i <= strlen(e)) && state && e[i] != ‘0’) //结束条件 超出数组长度或state为0或字符串结束
8 {
9 switch(e[i])
10 {
11 case ‘(‘:
12 case ‘{‘:
13 Push(S,e[i]); //遇到({则进栈
14 i++;
15 break;
16 case ‘)’:
17 GetTop(S,z);
18 if(!StackEmpty(S) && z == ‘(‘) //遇到)则判断栈顶是不是(,是的话出栈,不是则不匹配
19 {
20 Pop(S,z);
21 i++;
22 }
23 else
24 state = 0;
25 break;
26 case ‘}’:
27 GetTop(S,z);
28 if(!StackEmpty(S) && z == ‘{‘)//遇到}则判断栈顶是不是{,是则出栈,不是则不匹配
29 {
30 Pop(S,z);
31 i++;
32 }
33 else
34 state = 0;
35 break;
36 }
37 }
38 if(StackEmpty(S) && state) //空栈且state不为0则全部匹配
39 printf(“括号全部匹配”);
40 else
41 printf(“括号不匹配”);
42 }
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/94713.html