左右括号是否匹配用的栈
代码如下:
// isMatch.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include<stack>using namespace std;void match(char* pData){stack<char> T;while (*pData!='\0'){switch (*pData){case '(':case '[':case '{':T.push(*pData);pData++;break;case ')':case ']':case '}':if (T.empty()){cout<<"缺少左括号,不匹配"<<endl;return ;}T.pop();pData++;break;default:pData++;break;}}if (T.empty()){cout<<"匹配"<<endl;}else{cout<<"不匹配"<<endl;}}int _tmain(int argc, _TCHAR* argv[]){char* pData="{4*(8-3)-[(7-1)()*5-9]}*3-9*(5-3)";match(pData);system("pause");return 0;}