#include <iostream>
#include <stack>
using namespace std;
void conversion(int N) //数制转换
{
//打印与N等值的八进制数
stack<int> S;
while (N)
{
S.push(N % 8);
N /= 8;
}
while (!S.empty())
{
cout << S.top();
S.pop();
}
cout << endl;
}
//括号匹配的检验
// ([]())或者[([][])]等均为正确的格式,[(])或者([())均为不正确的格式
bool Matching()
{
stack<char> S;
char c;
bool flag = true;
while (cin >> c && flag) //windows下ctrl+z结束
{
switch (c)
{
case '(':
case '[':
S.push(c);
break;
case ']':
if (!S.empty() && S.top() == '[')
S.pop();
else
flag = false; //已经出现错误
break;
case ')':
if (!S.empty() && S.top() == '(')
S.pop();
else
flag = false; //已经出现错误
break;
default:
break;
}
}
if (flag && S.empty())
return true;
return false;
}
int main()
{
conversion(8);
Matching();
return 0;
}
数据结构--栈的两个简单应用
最新推荐文章于 2024-09-16 18:31:59 发布