順序棧括號匹配問題

2021-10-08 08:25:16 字數 958 閱讀 5519

/*

使用順序棧解決括號匹配問題

括號匹配問題:包括三種型別的括號(){}和其他字元,判斷是否存在對應的左右括號

舉例:[(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...