遞迴應用之括號匹配檢驗

2021-06-29 14:18:31 字數 457 閱讀 5962

括號匹配檢驗還可以用棧來解決,參見我的另一篇文章

《棧的應用之括號匹配檢驗》

這裡給出乙個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程式裡的括號,在這裡可以看到 不難總結出檢查括號配對的原則 在掃瞄正文過程中,遇到的閉括號應該與此前最近遇到且尚未獲得匹配的開括號配對。如果最近的未匹配開括號與當前閉括號不配對,或者找不...