/*
使用順序棧解決括號匹配問題
括號匹配問題:包括三種型別的括號(){}和其他字元,判斷是否存在對應的左右括號
舉例:[(s)]---滿足條件
[(s)]---不滿足條件
*/#include
using
namespace std;
typedef
char elemtype;
const
int maxsize =
100;
struct sqstack
;void
initstack
(sqstack &s)
bool
push
(sqstack &s, elemtype e)
s.data[
++s.top]
= e;
return
true;}
bool
stackempty
(sqstack s)
bool
pop(sqstack &s, elemtype &e)
e = s.data[s.top--];
return
true;}
bool
basketmatch()
':if(
stackempty
(s))
return
false
;pop
(s, c1);if
(c1!='}
//處理右括號和左括號匹配,但是左括號比右括號多的情況。舉例:({} if(
stackempty
(s))
return
true
;return
false;}
intmain()
程式小白,如果**有任何問題,歡迎指出。 括號匹配問題 順序棧
思想 每讀入乙個括號 1 若是左括號,則直接入棧,等待相匹配的同類右括號。2 若是右括號,且與當前棧頂的左括號同型別,則二者匹配,將棧頂的左括號出棧,否則屬於不合法的情況。include include define true 1 define false 0 define stack size 5...
順序棧的應用括號匹配問題
利用程式設計檢查這一串字元中的 是否匹配 解決思路 利用棧將字串的 的時候取出一位來和棧頂判斷是否相等。充分利用棧空間的特點。include define m 100 using namespace std typedef struct stack stacktype 別名設定 bool judge...
順序棧實現括號匹配
採用順序棧程式設計實現 表示式的括號是否匹配問題。要求 輸入帶括號的表示式,判斷其中括號是否配對。擴充套件功能 給出配對括號的位序和不配對括號的位序。include include include include include define overflow 2 define stack init...