資料結構 棧的應用 括號匹配的檢驗

2021-10-21 08:52:30 字數 1211 閱讀 8053

//棧的應用——括號匹配的檢驗

/*演算法內容:

以此掃瞄所有字元,遇到左括號入棧,遇到右括號則彈出棧頂元素檢查是否匹配。

匹配失敗的情況:

1.左括號單

2.右括號單

3.左右括號不匹配

*/#include

#include

#define maxsize 10

//定義棧中元素的最大個數

typedef

struct

sqstack;

//宣告需要使用的介面以及函式

void

initstack

(sqstack &s)

;bool stackempty

(sqstack s)

;bool push

(sqstack &s,

char x)

;bool pop

(sqstack &s,

char

&x);

//自定義判斷是否匹配的檢驗函式

bool bracketcheck

(char str,

int length)

'&& topelem!='}

return

stackempty

(s);

//檢查完所有括號後,棧空說明匹配成功

}//初始化棧

void

initstack

(sqstack &s)

//判斷棧空

bool stackempty

(sqstack s)

//入棧操作

bool push

(sqstack &s,

char x)

//出棧操作

bool pop

(sqstack &s,

char

&x)//main函式

intmain()

;gets

(a);

l=strlen

(a);

bracketcheck

(a,l);if

(bracketcheck

(a,l)

)printf

("yes");

else

printf

("no");

return0;

}

棧的應用 括號匹配檢驗

輸入包含括號的表示式,包含3中括號 圓括號 方括號,大括號 其巢狀順序隨意,即 或 等均為正確的輸入格式,檢驗輸入表示式中的括號是否匹配。源 bracketmatch.h ifndef bracketmatch h define bracketmatch h define maxsize 100 t...

資料結構 棧的應用 括號匹配

include include include 鏈式棧 括號匹配校驗 define success 0 define failure 1 typedef struct nodestnode def typedef struct linkstackstlinkstack def typedef voi...

棧的應用之括號匹配檢驗

棧結構具有後進先出的固有特性,在程式設計中很有幫助。這裡舉乙個例子,將棧應用與括號匹配的檢驗。假設表示式中允許三種括號 小括號 中括號和大括號,巢狀的順序任意。等均為正確格式。檢驗括號是否匹配可用 期待的急迫程度 來描述。接收乙個正括號後,計算機期待著乙個與之匹配的反括號。如果此時接收到乙個反括號,...