數據結構 寫一個判別表達式中開、閉括號是否配對出現的算法。

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章