一. 算法思想
二. 代码实现
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; }