括號匹配檢驗還可以用棧來解決,參見我的另一篇文章
《棧的應用之括號匹配檢驗》
這裡給出乙個c++程式,結合注釋來看是如何實現的。
#include using namespace std;
bool judge(char* str);//括號檢驗主體函式
bool match(char *,char,int &);//遞迴呼叫的匹配檢驗函式
//判斷是否為左、右括號,是否為一對括號
bool isleft(char);
bool isright(char);
bool ispair(char,char);
int main()
輸出:succeeded
輸入: 輸出:succeeded
輸入: 輸出:failed
棧的應用之括號匹配檢驗
棧結構具有後進先出的固有特性,在程式設計中很有幫助。這裡舉乙個例子,將棧應用與括號匹配的檢驗。假設表示式中允許三種括號 小括號 中括號和大括號,巢狀的順序任意。等均為正確格式。檢驗括號是否匹配可用 期待的急迫程度 來描述。接收乙個正括號後,計算機期待著乙個與之匹配的反括號。如果此時接收到乙個反括號,...
棧的應用 括號匹配檢驗
輸入包含括號的表示式,包含3中括號 圓括號 方括號,大括號 其巢狀順序隨意,即 或 等均為正確的輸入格式,檢驗輸入表示式中的括號是否匹配。源 bracketmatch.h ifndef bracketmatch h define bracketmatch h define maxsize 100 t...
棧的應用之括號匹配
在許多正文中都有括號,特別是在表示程式 數學表示式的正文片段裡,括號有正確配對問題。作為例子,下面考慮python程式裡的括號,在這裡可以看到 不難總結出檢查括號配對的原則 在掃瞄正文過程中,遇到的閉括號應該與此前最近遇到且尚未獲得匹配的開括號配對。如果最近的未匹配開括號與當前閉括號不配對,或者找不...