【问题描述】
借用栈,实现对某一输入的字符串判断字符串中的”()”是否匹配?并编写测试代码,对样例输入的字符串测试,
【输入形式】字符串
【输出形式】Matched 或 Not Matched
【样例输入】(a*b-(d-e))
【样例输出】Matched
#include <iostream>
using namespace std;
struct zhan {
int len;
char data[20];
};
bool empty(zhan& z)
{
if (z.len == 0)
return true;
else
return false;
}
void ruzhan(zhan& z, char ch)
{
z.data[z.len] = ch;
z.len++;
}
void chuzhan(zhan& z)
{
if (empty(z))
return;
else
z.len--;
}
void output(zhan& z)
{
if (empty(z))
return;
else
{
for (int i = 0; i < z.len; i++)
cout << z.data[i] << " ";
}
}
void test(zhan& z, char ch[200], int length)
{
for (int i = 0; i < length; i++)
{
if (ch[i] == '(')
{
ruzhan(z, ch[i]);
}
else if (ch[i] == ')')
{
if (z.data[z.len - 1] == '(')
chuzhan(z);
}
}
if (empty(z))
cout << "Matched";
}
int main()
{
char ch[200];
cin >> ch;
int length=0;
while (ch[length] != NULL)
length++;
//cout << length;
zhan sqzhan;
sqzhan.len = 0;
test(sqzhan, ch, length);
return 0;
}