Status Matching(){
// 試寫一個判別表達式中開、閉括號是否配對出現的算法。
//表達式以# 結束
InitStack(s); //初始化空棧
int flag = 1;
cin>>ch;
while(ch!='#'&&flag){ //以'#'結束
switch(ch){
case '[':
case '(': // 左括號 壓棧
push(s,ch);
break;
case ')':
if(!StackEmpty(s)&&GetTop(s)=='(')
pop(s,x); //非空並且棧頂元素是( 則正確匹配
else flag = 0; // 若爲空或者部署( 則錯誤匹配
break;
case ']':
if(!StackEmpty(s)&&GetTop(s) =='[')
pop(s.x);
else flag = 0;
break;
}
cin>>ch;
}
if(StackEmpty(s)&&flag) return true;
else return false;
}
數據結構 寫一個判別表達式中開、閉括號是否配對出現的算法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.