一.括号匹配问题:
1.例一:
把左括号依次压入栈中,越往后压入栈的左括号越先被匹配即被弹出栈->先进后出,后进先出
2.例二:
当遇到左括号就压入栈中,当遇到右括号就把栈顶的左括号弹出,检查该右括号和左括号是否匹配
当遇到一个不匹配的就停止压入栈,因为之后的括号必定都不匹配。
3.例三:
4.例四:
5.例五:
二.思维导图:
其中Y代表Yes,N代表No
三.代码实现:
1.对于bracketCheck函数,形参str[]是传入的一个字符串,length是该字符串的长度;
字符topElem代表栈顶元素;return StackEmpty(S)如果是return false说明栈不为空,则左括号单身;
创建栈顶元素topElem时代表扫描到右括号且栈不为空,用栈顶元素topElem记录左括号;
2.结构体SqStack代表一个顺序栈。