Status MatchCheck(SqList exp)
/* 顺序表exp表示表达式; */
/* 若exp中的括号配对,则返回TRUE,否则返回FALSE */
/* 注:本函数不使用栈 */
{
if((0 != exp.length % 2))
{
return FALSE;
}
int i = 0;
int j = 0;
for( ; i <= exp.length - 1; i++)
{
if(exp.elem[i] == '(')
j++;
if(exp.elem[i] == ')')
j--;
if(j < 0)
return FALSE;
}
if(j == 0)
return TRUE;
else
return FALSE;
}
typedef char ElemType
bool MatchCheck(SqList exp)
{
int count=0;
ElemType* p=exp.ElemType ;
while (p != NULL)
{
if(*p=='(')
count++;
else if(*p==')')
count--;
if(count < 0)
return FALSE
p++;
}
if (count==0)
return TRUE;
else
return FALSE;
}
太繁琐!