栈应用:数制转换及括号 匹配完整算法
时间: 2023-07-26 21:14:19 浏览: 161
数制转换的算法如下:
1. 将十进制数不断除以目标进制,将余数存入栈中,直到商为0为止。
2. 从栈中依次取出余数,将它们连成一个新的数,即为目标进制下的数。
括号匹配的算法如下:
1. 遍历表达式,遇到左括号就将其入栈。
2. 遇到右括号时,判断栈顶是否为左括号,如果是则将栈顶出栈,否则表达式不合法。
3. 遍历完表达式后,如果栈为空,则表达式合法,否则表达式不合法。
完整的算法实现如下(以判断括号匹配为例,数制转换类似):
```
bool isParenthesesMatched(string expression) {
stack<char> s;
for (int i = 0; i < expression.length(); i++) {
if (expression[i] == '(') {
s.push(expression[i]);
} else if (expression[i] == ')') {
if (s.empty() || s.top() != '(') {
return false;
}
s.pop();
}
}
return s.empty();
}
```
阅读全文