#include
#include
#define maxsize 100
typedef structstack;
bool initstack(stack *s)
bool push(stack *s, char e)
bool pop(stack *s, char *e)
bool gettop(stack *s, char *e)
bool empty(stack *s)
bool matchchar(char x, char y)
') return true;
return false;
}bool matchall(char *str)
++str;
}if( empty(&s) )
return true;
}void main()
()))(({}()))";
if(matchall(str))
printf("the str is matched");
else
printf("the str is not matched");
本演算法在vc++6.0中編譯通過
驗證括號是否匹配
smpleinput dfa sdf df dfds dfd smple output 0 思路 最簡單的資料結構,棧的問題,遇到左括號就入棧,遇到右括號就比較,如果匹配就繼續,如果不匹配就結束,返回1.include include includeusing namespace std bool ...
括號匹配演算法
檢驗括號是否匹配的方法可以用 期待的急迫程度 這個概念來描述。例如,考慮下列括號序列 1 2 3 4 5 6 7 8 當計算機接受了第乙個括號後,它期待著與其匹配的第八個括號的出現,然而等來的卻是第二個括號,此時第乙個括號 只能暫時靠邊,而迫切等待與第二個括號相匹配的 第七個括號 的出現,類似地,因...
括號匹配演算法
題目 有一段字串,包含 和 和 中的一種或者多種,這三種括號出現次序不定,可隨意巢狀。編寫 判斷三種括號是否正確匹配。思路一 棧的思想 括號匹配是運用棧的經典思想。在 演算法中設定乙個空棧,每次讀入乙個括號,若是左括號,則壓入棧中,等到對應的右括號壓棧,若是右括號,能使置於棧頂的最急迫的期待得以消解...