数据结构代码,用户输入的任意表达式,假设表达式中含有1种括号:(),其嵌套的顺序随意。检验括号是否匹配,输出结果为匹配或不匹配。 提示:遇到左括号就进栈,遇到右括号就出栈
时间: 2024-10-24 20:09:36 浏览: 16
数据结构代码可以采用栈(Stack)来实现括号匹配检查。下面是一个基本的伪代码示例:
```python
def is_balanced(expression):
stack = []
opening_brackets = ['(', '[', '{']
closing_brackets = [')', ']', '}']
for char in expression:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
last_opening = stack.pop()
if not (closing_brackets.index(char) == opening_brackets.index(last_opening)):
return "不匹配" # 根据左右括号的配对规则,如果当前闭合的和栈顶最近的开放不对应,则不匹配
# 检查栈是否为空,若为空则表示所有括号都已成对出现
if len(stack) == 0:
return "匹配"
else:
return "不匹配" # 如果还有剩余的打开括号未关闭,则不匹配
# 示例使用
expression = "(){}[]"
result = is_balanced(expression)
print(result) # 输出: 匹配
```
这个函数逐个遍历输入表达式的字符,如果是开括号就入栈,如果是闭括号就尝试从栈顶弹出与其配对的开括号。如果某个闭括号无法找到对应的开括号,说明括号不匹配。最后,如果栈为空,则所有括号都已匹配,反之则不匹配。
阅读全文