1. 程式人生 > >一個判別表示式中開、閉括號是否配對出現的演算法

一個判別表示式中開、閉括號是否配對出現的演算法

順序表型別定義如下:
typedef struct {
    ElemType *elem;
    int       length;
    int       listsize;
} SqList;  // 順序表

實現函式如下:

Status MatchCheck(SqList exp)
/* 順序表exp表示表示式;                        */
/* 若exp中的括號配對,則返回TRUE,否則返回FALSE */
{
    int i,j;
    while(i < exp.length){
        if(exp.elem[i] == '(')
            j++;
        if(exp.elem[i] == ')')
            j--;
        if(j < 0)return FALSE;
        i++;       
    }                         
    if(j > 0)return FALSE;
    return TRUE;
}