利用程式設計檢查這一串字元中的( ) ,[ ],是否匹配
解決思路:利用棧將字串的()的時候取出一位來和棧頂判斷是否相等。充分利用棧空間的特點。
#include
#define m 100
using
namespace std;
typedef
struct stack
stacktype;
//別名設定
bool
judge
(stack* s)
;//判斷棧空
bool
judgefree
(stack* s)
;//判斷棧滿,是否會溢位
bool
push
(stack* s,
char x)
;//插入棧
char
pop(stack* s)
;//出棧
intmain()
";int flag =0;
for(
auto ch:arr)
//基於c++11的範圍for迴圈
else
if(ch ==
']'|| ch ==
'}'|| ch ==
')')')
||(a ==
'('&& ch ==
')')
||(a ==
'['&& ch ==
']')
)//匹配則為1
flag =1;
else
//不匹配的話說明以及出現錯誤,沒必要執行下去,直接退出迴圈}}
//if (judge(s))
// flag = 0;
cout <<
(flag ?
'y':
'n')
;return0;
}bool
judge
(stack* s)
else
return
(true);
}bool
judgefree
(stack* s)
else
return
(true);
}bool
push
(stack* s,
char x)
else
return
false;}
char
pop(stack* s)
else
return
'n';
//此處設定可以根據情況來定
}
順序棧的應用 括號匹配
include define maxsize 100 typedef struct sequence stack void init sequence stack st 棧的初始化 int empty sequence stack st 判斷棧是否為空 char read sequence stac...
括號匹配問題 順序棧
思想 每讀入乙個括號 1 若是左括號,則直接入棧,等待相匹配的同類右括號。2 若是右括號,且與當前棧頂的左括號同型別,則二者匹配,將棧頂的左括號出棧,否則屬於不合法的情況。include include define true 1 define false 0 define stack size 5...
順序棧括號匹配問題
使用順序棧解決括號匹配問題 括號匹配問題 包括三種型別的括號 和其他字元,判斷是否存在對應的左右括號 舉例 s 滿足條件 s 不滿足條件 include using namespace std typedef char elemtype const int maxsize 100 struct sq...