//棧的應用——括號匹配的檢驗
/*演算法內容:
以此掃瞄所有字元,遇到左括號入棧,遇到右括號則彈出棧頂元素檢查是否匹配。
匹配失敗的情況:
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...
棧的應用之括號匹配檢驗
棧結構具有後進先出的固有特性,在程式設計中很有幫助。這裡舉乙個例子,將棧應用與括號匹配的檢驗。假設表示式中允許三種括號 小括號 中括號和大括號,巢狀的順序任意。等均為正確格式。檢驗括號是否匹配可用 期待的急迫程度 來描述。接收乙個正括號後,計算機期待著乙個與之匹配的反括號。如果此時接收到乙個反括號,...