驗證括號匹配 演算法

2021-05-11 15:09:34 字數 608 閱讀 6693

#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 當計算機接受了第乙個括號後,它期待著與其匹配的第八個括號的出現,然而等來的卻是第二個括號,此時第乙個括號 只能暫時靠邊,而迫切等待與第二個括號相匹配的 第七個括號 的出現,類似地,因...

括號匹配演算法

題目 有一段字串,包含 和 和 中的一種或者多種,這三種括號出現次序不定,可隨意巢狀。編寫 判斷三種括號是否正確匹配。思路一 棧的思想 括號匹配是運用棧的經典思想。在 演算法中設定乙個空棧,每次讀入乙個括號,若是左括號,則壓入棧中,等到對應的右括號壓棧,若是右括號,能使置於棧頂的最急迫的期待得以消解...