栈在括号匹配中的应用
Posted hky8220
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈在括号匹配中的应用相关的知识,希望对你有一定的参考价值。
一. 算法思想
二. 代码实现
eg: [ ( [ ] [ ] ) ]
1.栈的括号匹配算法
int MatchBracket()//栈的括号匹配算法 { Stack S=InitStack(); ElemType ch; char arr[8]={‘[‘,‘(‘,‘[‘,‘]‘,‘[‘,‘]‘,‘)‘,‘]‘}; for(int i=0;i<8;i++) { if(arr[i]==‘[‘||arr[i]==‘(‘) { PushStack(&S,arr[i]); } else if(arr[i]==‘]‘) { if(GetTop(S)==‘[‘) { PopStack(&S,&ch); } else { printf("括号不匹配! "); return FALSE; } } else if(arr[i]==‘)‘) { if(GetTop(S)==‘(‘) { PopStack(&S,&ch); } else { printf("括号不匹配! "); return FALSE; } } } if(StackEmpty(S)) { printf("括号匹配! "); } else { printf("括号不匹配! "); } return TRUE; }
运行示例:
int main() { if(MatchBracket()) { printf("算法正常结束! "); } else { printf("算法异常结束! "); } return 0; }
以上是关于栈在括号匹配中的应用的主要内容,如果未能解决你的问题,请参考以下文章